Skip to content

spacedriveapp/native-deps

Repository files navigation

Spacedrive native dependencies

Build instructions

To build the native dependencies a docker or podman installation is required. It is recomended to enable BuildKit in docker.

Just run the following inside this directory:

$> docker build --build-arg TARGET=<TARGET> -o . .

or

$> podman build --jobs 4 --format docker --build-arg TARGET=<TARGET> -o . .

Where <TARGET> is one of:

  • x86_64-darwin-apple
  • aarch64-darwin-apple
  • x86_64-windows-gnu
  • aarch64-windows-gnu
  • x86_64-linux-gnu
  • aarch64-linux-gnu
  • x86_64-linux-musl
  • aarch64-linux-musl
  • x86_64-linux-android
  • aarch64-linux-android

To build for iOS choose one of the darwin targets and pass --build-arg OS_IPHONE=<1|2> as an argument, 1 means iOS and 2 means iOS Simulator. Only iOS simulator supports x86_64.

After some time (it takes aroung 1~2 hours in Github CI) a directory named out will show up in the current directory containing our native dependencies.

TODO (Order of importance)

Acknowledgments

This build system is losely base on:

It uses Zig 0.12 as a C/C++ toolchain to build the Windows and Linux targets:

It uses LLVM/Clang 17 with some tweaks from osxcross + Apple's cctools and linker to build the Darwin (macOS, iOS) targets:

By building the Darwin target you are agreeing with the Apple Public Source License (APSL) and the Xcode license terms

Thanks to all the developers involved in making the dependencies used by this project