spacedrive/Cargo.toml

52 lines
1.9 KiB
TOML
Raw Normal View History

2022-03-30 08:14:50 +00:00
[workspace]
resolver = "2"
2022-03-30 08:14:50 +00:00
members = [
"core",
"crates/*",
2022-10-08 18:30:17 +00:00
# "crates/p2p/tunnel",
# "crates/p2p/tunnel/utils",
"apps/cli",
"apps/desktop/src-tauri",
"apps/desktop/crates/*",
"apps/mobile/crates/*",
"apps/server",
2022-03-30 08:14:50 +00:00
]
[workspace.dependencies]
prisma-client-rust = { git = "https://github.com/Brendonovich/prisma-client-rust", rev = "5d8029e0a0b590e1b8f674339ba880114a1becc8", features = [
"rspc",
"sqlite-create-many",
"migrations",
"sqlite",
2023-04-28 17:56:08 +00:00
] }
prisma-client-rust-cli = { git = "https://github.com/Brendonovich/prisma-client-rust", rev = "5d8029e0a0b590e1b8f674339ba880114a1becc8", features = [
"rspc",
"sqlite-create-many",
"migrations",
"sqlite",
2023-04-28 17:56:08 +00:00
] }
prisma-client-rust-sdk = { git = "https://github.com/Brendonovich/prisma-client-rust", rev = "5d8029e0a0b590e1b8f674339ba880114a1becc8", features = [
2023-01-05 07:11:55 +00:00
"sqlite",
2023-04-28 17:56:08 +00:00
] }
2022-10-21 21:43:39 +00:00
rspc = { version = "0.1.4" }
specta = { version = "1.0.4" }
httpz = { version = "0.0.3" }
swift-rs = { version = "1.0.5" }
tokio = { version = "1.25.0" }
[patch.crates-io]
# We use this patch so we can compile for the IOS simulator on M1
openssl-sys = { git = "https://github.com/spacedriveapp/rust-openssl", rev = "92c3dec225a9e984884d5b30a517e5d44a24d03b" }
# We patch this so that it can be built for IOS - The `main` branch uses macOS specific APIs
if-watch = { git = "https://github.com/oscartbeaumont/if-watch", rev = "410e8e1d2d0730f1441df1c29294fec4c3c04193" }
mdns-sd = { git = "https://github.com/oscartbeaumont/mdns-sd", rev = "45515a98e9e408c102871abaa5a9bff3bee0cbe8" } # TODO: Do upstream PR
rspc = { git = "https://github.com/oscartbeaumont/rspc", rev = "799eec5df7533edf331f41d3f1be03de07e038d7" }
httpz = { git = "https://github.com/oscartbeaumont/httpz", rev = "a5185f2ed2fdefeb2f582dce38a692a1bf76d1d6" }
[ENG-270, ENG-213] Stabilize release pipeline (#768) * Attempt at building our own ffmpeg dylibs for macOS - Create dockerfile to setup osxcross and required host dependencies for cross-compiling ffmpeg for macOS - Create script to setup required macOS dependencies and build ffmpeg for both x86_64 and aarch64 * Improve dockerfile to better use docker's cache - Attempt at fixing arm64 build (still not there yet) * ARM64 sucessfully compiles \o/ - Use clang for everything (e.g. linker, assembler, ...) - Remove -lc++ because it is now handled internally thanks to a patch - Apply 3 open PRs to osxcross as external patches to solve some of our problems - PR 180 reduces the macports dependencies size by prefering non universal libs for x88 - PR 314 adds the -lc++ flag for macOS SDKs >= 11.1 - PR 379 fix macports pulling incorrects deps for SDK11 and adds support for SDK13 (future proofing, as it does nothing for us rigth now) * Fix relink and copy logic in ffmpeg build script - Ensure ffmpeg and dependencies dylibs are correctly relinked and copied over to the output directory - Copy includes from ffmpeg and dependencies to allow for dev building against these dylibs - Set up symlinks for all dylibs to the common `lib` directory - Remove superfluous linker and compiler options - Add `-headerpad_max_install_names` linker option to accommodate the required relink changes - Remove `--disable-fft` for the arm64 build, as it doesn't seem to be required nowadays - Allow `swresample` and `avdevices` to be compiled as they seem to be expected to exist by `ffmpeg-sys-next` - Disable ffmpeg program compilation - Fix dylibs id to match their new expected location - Fix ffmpeg dylibs inter-linkage not being updated - Add custom patch for osxcross macports to load already downloaded files from cache - Remove the requirement for specifying the darwin version in the Dockerfile - Enable docker cache for macports - Move arm min macOS version ARG to the top * Attempt at building ffmpeg with github actions - Split osxcross setup into it's own Dockerfile to allow exporting it as a image to Dockerhub - Create a github action to build ffmpeg - Add osxcross patch for PR 372 for future proofing (Add support for macOS SDK 13.1) * Remove incompatible step name * Change FFMPEG_VERSION to string to avoid yaml weird type casting * Start to use our ffmpeg build in the macOS - Adjust the macOS setup script to download our ffmpeg build, also replace installing protobuf compiler from brew with grabbing it from it's own repository - Some misc improvement to the *nix setup script - Fix ffmpeg build script not copying static libs (for when we may want to statically link ffmpeg) - Fix ffmpeg build script not taking into acount possible libraries that are multiple paths deep in /lib - Update CI to actions/checkout@v3, v2 is deprecated - Update ffmpeg build CI to not xz the artifacts, as github already zips it anyway * Fix macOS setup not finding the ffmpeg artifact due to a jq script mistake - Comment out embeeding static libs in ffmpeg artifact for now, as they take too much space - Remove incorrect dockerfile settings from editorconfig * Fix protobuf download in macOS - Fix Framework directory creation not following script's dir but cwd - Improve download logic to avoid being rate limited on failures - Return to using xz for ffmpeg build, as it saves quite a bit of space * Replace `OSTYPE` with `$(uname)` for a more standardized way to check which os is running - Fix mobile check using `==` instead of `=` in test command * Fix syntax error in bash 3.x (which is the default in macOS) - Fix jq not downloading all deps and being placed in the incorrect directory * Fix incorrect install_name_tool arguments - Remove leading './' when referencing ffmpeg libs during build * Fix protoc not being executable - Fix some error messages * jq throw input when it is invalid - Enable debug log in setup script when running in CI * Add a dev.js build script for desktop app - Remove dll copy from setup-system.ps1, now done by dev.js - Minor rework to build.js to improve signals and stdio handling * Configure cargo to use FFMPEG_DIR and PROTOC envvars on macOS * Pass GITHUB_TOKEN to macOS setup script in CI * Replace simple curl with gh_curl in github request * Fix some ctrl+c/ctrl+v typos * Add missing ffmpeg deps - Fix missing symlinks for ffmpeg libs in the output_dir/libs - Change arm64 minimum macOS target to 11.2 due to libbrotli only being available precompiled to this version - Add more options to ffmpeg configure in an attempt to reduce its size + improve performance * Rework ffmpeg build script to create a FFMpeg.framework instead of loose dylibs - Disable unused postproc and enabled missing required protocols in ffmpeg configuration - Adjust Dockerfile and setup-script to handle the new FFMpeg.framework * Fix setup script incorrect linking logic for FFMpeg.framework * Forgot to remote the leading path in the lib/header linking logic for FFMpeg.framework * Enable size optimization for ffmpeg - Remove Frameworks directory before setting it up in setup-system.sh * Revert lib id to use `@executable_path/../Frameworks/` instead of `@rpath` - `@rpath` breaks dev builds - Add logic to create less versioned versions of dylibs in setup-system script, due to it being required for compiling ffmpeg-sys-next (not required during runtime, just for compilation) - Add scripts/deps to gitignore * Fix ffmpeg build script not copying unversioned symlinks to FFMpeg.framework - Remove unecessary unversioned symlink logic from setup-system - Add new build scripts for dev and prod that setup the environment and tauri to correctly point to FFMpeg.framework - Rework windows setup-system script to follow the same logic as in macOS setup-system * Attempt at fixing windows setup script - Add powershell editorconfig * Attempt to fix Windows CI * Fix some mistakes in the build scripts - Replace toml lib with something more used and maybe better? - Attempt to fix Windows CI * Fix some more problems with the build script * Another attempt at fixing windows CI * Some more fixes for the windows setup script * Add build.js step to release CI - Implement patch only mode for build.js when running under CI - Implement appeding extra env in cargo config in env.js - Only run windows dlls copy in dev in env.js - Another attempt at fixing windows CI * Maybe this will make the windows CI happy? * Windows CI why dont you work, whyyy? * Try to apease the Windows CI Gods - Disable updater build in macOS, due to tauri-apps/tauri#3933 * Fix build.js extra env vars - Uncomment parts of setup-system.ps1 to check if it keeps working * Uncomment another section and see if windows CI will complain * uncomment some more of setup-system.ps1 * Use Start-Process for robocopy instead of executing it directly - Only raise an error if robocopy exists with a status code >=8 - Revert build.js macOS specific bundles change - Disable updater for now * Remove updater from cargo.toml * Add -PassThru to Start-Process to ensure we get and Process obj back * Comment out more of updater * Improve documentation for both of the docker containers - Fix a harcoded install_name_tool call in the ffmpeg-build-macos.sh script * Configure tauri to copy ffmpeg dlls to windows prod version - Fix windows dlls copy on dev - Stop replacing tauri.conf.json, except on CI, for prod builds and use a tauri.conf.patch.json for any required changes - Don't unset macOSPrivateApi on prod build, we need it for the transparent background - Fix dev.js not exiting when the spawned command was over * Fix windows not find protoc - Fix missing import in env.js * Fix Windows Dlls copy logic for prod build - Fix dev script failing due to missing env - Implement error handler to spawned process * Format + Fix pnpm-lock * Fix video thumb generation failing on Windows due to bad path to CString conversion logic * Fix mobile build - Greatly improve windows setup-script error handling - Install LLVM with winget instead of downloading exe from github * Improve CI a bit - Fix mobile CI not using github token to avoid being rate limited * Fix pnpm not accesible to actions/setup-node * Skip pnpm check on CI * Fix pnpm skip not working - Fix pnpm cache check missing a step * Only lock action to major versions * CI really doesn't like running robocopy directly * Attempt to build our own patched tauri bundler * Trigger new workflow * Fix attempt for patched tauri action tests - Disable cache for patched tauri action - Enable package publishing for patched tauri action * Attempt fix patched tauri publish * Remove commented code from patched tauri workflow - Replace deprecated `actions-rs/toolchain` with `dtolnay/rust-toolchain` * Fix url patching logic for publishing step of patched tauri package * Fix prepublishOnly command for patched tauri package * Adjust patched tauri package package.json * Also patch the specific os/arch sub packages * Instruct napi to stop doing github releases * Patch package.json befor build * Re-enable updater - Patch tauri cli to workaround a tauri bug that prevented use from bundling frameworks in the updater - Update tauri/api to 1.3 and tauri/cli 1.3.1 - Add target triple in the release artifacts name - Use ubuntu-20.04 instead of ubuntu-latest - Configure release workflow to build to all supported platforms - Replace `tauri-apps/tauri-action` with simply calling `pnpm desktop build` - Simplify tauri-patched-cli-js to only build the required macOS binaries - Unify build.js and dev.js in a tauri.js build script, which now acts as an all around wrapper for the tauri/cli * Restore incorrectly removed step from `tauri-patched-cli-js` * Disable auto-run of tauri-patched-cli-js - Update setup-system.sh with the latest tauri-patched-cli-js artifacts * Forgot to mkdir bin * Fix pnpm-lock.yaml not being up to date - Remove pnpm deps caching * Fix variable name conflict * Enable the updater build conditionally - Enable release workflow to test it * Fix artifacts not being published - Change macOS on arm64 minimumSystemVersion to 11.2 - Commented out rust cache to check if this is the culprit to the low memory problem on windows runner - Add some debug log to tauri.js * Fix release workflow artifact uploading * Specify which bundles to build on each platform - Attempt fix apple arm build - Don't include internal deb archives in linux updater artifact * Attempt to fix apple arm build - Fix dmg background not applying * Fix incorrect semver usage * Patch swift-rs to see if that fix apple arm64 release build * Update swift-rs submodule - Remove unused deps lodash.merge * Configure so only release workflow runs without cache - Improve tauri.js logs * Ignore `crates/swift-rs` * Revert "Ignore `crates/swift-rs`" - Remove `crates/swift-rs` before running `cargo fmt` This reverts commit 851bd84373fd7263f0efe4876a864cff0b2af75b. * Github CI input/output are always string - Attempt to fix Windows Clippy * Fix CI syntax error * Fix mobile CI - Disable pnpm deps caching - Disable rust targets caching on Windows - Configure cache factory to run for all targets * Remove `crates/swift-rs` * Attempt fix Mobile CI - Enable cache factory run in pull_request to test it - Specific more path for the CI run to ignore - Specify path that will trigger the cache factory run - Some cleanup in the setup-pnpm action * Remove restore-cache options - Add prefix key to cache-factory - Fix LLVM cache-hit check - Add libheif to FFMpeg.framework * Remove submodule clone from actions * Add fake deps to ffmpeg build dockerfile - Fake install deps that aren't really necessary to build ffmpeg - Fail ffmpeg build script if it can't find a macports deps - Copy libheif headers to Framework * Remove automatic trigger for relase and pull request trigger for cache-factory actions * Remove pnpm setup from Cache factory - Cache factory is exclusivly for rust deps caching, no need to setup Node and pnpm with it * Re-enabled fail-fast in Github CI
2023-05-15 18:02:56 +00:00
swift-rs = { git = "https://github.com/Brendonovich/swift-rs", rev = "973c22215734d1d5b97c496601d658371e537ece" }