Honor Apple deployment targets in SDK builds
Seto Elkahfi committed
May 15, 2026 at 07:43 UTC
72198b9b970726db99fca44e797e3fd53bd79b0b
2 files changed
+21
-10
.github/scripts/build-swift-xcframework.sh
+15
-9
@@ -13,21 +13,27 @@ CHECKSUM_PATH="$DIST_DIR/OndeFramework.checksum.txt"
13
VERSION_PATH="$DIST_DIR/version.txt"
14
BINDGEN="$ROOT_DIR/uniffi-bindgen/target/release/uniffi-bindgen"
15
16
+IOS_DEPLOYMENT_TARGET="${IOS_DEPLOYMENT_TARGET:-16.0}"
17
+MACOS_DEPLOYMENT_TARGET="${MACOS_DEPLOYMENT_TARGET:-14.0}"
18
+TVOS_DEPLOYMENT_TARGET="${TVOS_DEPLOYMENT_TARGET:-16.0}"
19
+VISIONOS_DEPLOYMENT_TARGET="${VISIONOS_DEPLOYMENT_TARGET:-1.0}"
20
+WATCHOS_DEPLOYMENT_TARGET="${WATCHOS_DEPLOYMENT_TARGET:-9.0}"
21
+
22
rm -rf "$FRAMEWORK_DIR" "$ZIP_PATH" "$CHECKSUM_PATH" "$VERSION_PATH"
23
mkdir -p "$DIST_DIR" "$PACKAGE_DIR/Sources/Onde" "$HEADERS_DIR"
24
25
cargo +1.92.0 build --manifest-path uniffi-bindgen/Cargo.toml --release
26
27
# Build staticlibs only. Avoid the cdylib link step; the XCFramework consumes .a slices.
22
-cargo +1.92.0 rustc --target aarch64-apple-ios --release --lib --crate-type staticlib
23
-cargo +1.92.0 rustc --target aarch64-apple-ios-sim --release --lib --crate-type staticlib
24
-cargo +1.92.0 rustc --target aarch64-apple-darwin --release --lib --crate-type staticlib
25
-cargo +nightly rustc -Z build-std --target aarch64-apple-tvos --release --lib --crate-type staticlib
26
-cargo +nightly rustc -Z build-std --target aarch64-apple-tvos-sim --release --lib --crate-type staticlib
27
-cargo +nightly rustc -Z build-std --target aarch64-apple-visionos --release --lib --crate-type staticlib
28
-cargo +nightly rustc -Z build-std --target aarch64-apple-visionos-sim --release --lib --crate-type staticlib
29
-cargo +nightly rustc -Z build-std --target aarch64-apple-watchos --release --lib --crate-type staticlib
30
-cargo +nightly rustc -Z build-std --target aarch64-apple-watchos-sim --release --lib --crate-type staticlib
28
+IPHONEOS_DEPLOYMENT_TARGET="$IOS_DEPLOYMENT_TARGET" cargo +1.92.0 rustc --target aarch64-apple-ios --release --lib --crate-type staticlib
29
+IPHONEOS_DEPLOYMENT_TARGET="$IOS_DEPLOYMENT_TARGET" cargo +1.92.0 rustc --target aarch64-apple-ios-sim --release --lib --crate-type staticlib
30
+MACOSX_DEPLOYMENT_TARGET="$MACOS_DEPLOYMENT_TARGET" cargo +1.92.0 rustc --target aarch64-apple-darwin --release --lib --crate-type staticlib
31
+TVOS_DEPLOYMENT_TARGET="$TVOS_DEPLOYMENT_TARGET" cargo +nightly rustc -Z build-std --target aarch64-apple-tvos --release --lib --crate-type staticlib
32
+TVOS_DEPLOYMENT_TARGET="$TVOS_DEPLOYMENT_TARGET" cargo +nightly rustc -Z build-std --target aarch64-apple-tvos-sim --release --lib --crate-type staticlib
33
+XROS_DEPLOYMENT_TARGET="$VISIONOS_DEPLOYMENT_TARGET" cargo +nightly rustc -Z build-std --target aarch64-apple-visionos --release --lib --crate-type staticlib
34
+XROS_DEPLOYMENT_TARGET="$VISIONOS_DEPLOYMENT_TARGET" cargo +nightly rustc -Z build-std --target aarch64-apple-visionos-sim --release --lib --crate-type staticlib
35
+WATCHOS_DEPLOYMENT_TARGET="$WATCHOS_DEPLOYMENT_TARGET" cargo +nightly rustc -Z build-std --target aarch64-apple-watchos --release --lib --crate-type staticlib
36
+WATCHOS_DEPLOYMENT_TARGET="$WATCHOS_DEPLOYMENT_TARGET" cargo +nightly rustc -Z build-std --target aarch64-apple-watchos-sim --release --lib --crate-type staticlib
37
38
"$BINDGEN" generate "$ROOT_DIR/target/aarch64-apple-ios/release/libonde.a" --language swift --out-dir "$PACKAGE_DIR/Sources/Onde"
39
sdk/kotlin/scripts/build-jvm.sh
+6
-1
@@ -77,6 +77,7 @@ platform_ext() {
77
PLATFORM="$(detect_platform)"
78
TARGET_TRIPLE="${ONDE_TARGET_TRIPLE:-$(platform_to_triple "$PLATFORM")}"
79
LIB_EXT="$(platform_ext "$PLATFORM")"
80
+MACOS_DEPLOYMENT_TARGET="${MACOS_DEPLOYMENT_TARGET:-14.0}"
81
82
echo "=== Building Onde for JVM (profile: $PROFILE) ==="
83
echo "Platform: $PLATFORM"
@@ -93,7 +94,11 @@ if [[ "$PROFILE" == "release" ]]; then
94
fi
95
96
echo "→ cargo ${CARGO_ARGS[*]}"
96
-cargo "${CARGO_ARGS[@]}"
97
+if [[ "$PLATFORM" == macos-* ]]; then
98
+ MACOSX_DEPLOYMENT_TARGET="$MACOS_DEPLOYMENT_TARGET" cargo "${CARGO_ARGS[@]}"
99
+else
100
+ cargo "${CARGO_ARGS[@]}"
101
+fi
102
103
# ── Copy to resources ──────────────────────────────────────────────────────────
104