Link the inference engine for macOS in a zig container
`docker/macos` builds for aarch64-apple-darwin from Linux with cargo-zigbuild. Zig carries libSystem and the C headers, so tract's SIMD kernels compile and the engine's test binaries and examples link as Mach-O arm64 — the check `cargo check --target` could not do, because tract's build script needs a macOS C compiler. Crates that link an Apple framework (dr-plat's keyring, and so the app) still need the Xcode SDK and fail at the link; macos.md says so.
This commit is contained in:
+12
-4
@@ -21,12 +21,20 @@ bundle, and signing. `dr-plat` sends every non-Android Unix to the X11/Wayland d
|
||||
|
||||
## 2. Building
|
||||
|
||||
The Rust side compile-checks from Linux:
|
||||
`docker/macos` compiles and links for macOS from Linux, using zig as the linker
|
||||
(`cargo-zigbuild`). Zig carries libSystem's stubs and the C headers, so tract's SIMD kernels
|
||||
compile and anything that needs only libSystem links:
|
||||
|
||||
rustup target add aarch64-apple-darwin
|
||||
cargo check --target aarch64-apple-darwin -p dr-inference-engine --features native
|
||||
./docker/macos/build.sh cargo zigbuild --target aarch64-apple-darwin -p dr-inference-engine --features native --all-targets
|
||||
./docker/macos/build.sh cargo-zigbuild clippy --target aarch64-apple-darwin -p dr-inference-engine --features native --all-targets -- -D warnings
|
||||
|
||||
Linking needs Apple's SDK, which means a Mac. On one:
|
||||
That produces Mach-O arm64 test binaries and the `ladder` and `ep_probe` examples. Nothing runs
|
||||
them. Anything that links an Apple framework needs the Xcode SDK, which zig does not carry. That
|
||||
includes `dr-plat` (through the keyring's Security and CoreFoundation) and so the desktop app, and
|
||||
its link fails with `unable to find framework`. `cargo check` for those still works in the
|
||||
container.
|
||||
|
||||
Linking the app needs Apple's SDK, which means a Mac. On one:
|
||||
|
||||
cargo build --profile diagnostic -p darkroom-desktop
|
||||
./tools/fetch-desktop-runtime.sh # ONNX Runtime 1.29.0 with CoreML, Apple silicon only
|
||||
|
||||
Reference in New Issue
Block a user