From e747ca3d0ea0b1f256eb457054932c7160fdce35 Mon Sep 17 00:00:00 2001 From: KhooLy <73142442+KhooLy@users.noreply.github.com> Date: Tue, 14 Jul 2026 18:41:00 +0300 Subject: [PATCH] Fix Apple streaming engine CI packaging --- .github/workflows/apple.yml | 2 ++ .../scripts/build-rust-core-xcframework.sh | 30 ++++++++++++------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/.github/workflows/apple.yml b/.github/workflows/apple.yml index 4d19be9..f5c0a50 100644 --- a/.github/workflows/apple.yml +++ b/.github/workflows/apple.yml @@ -90,6 +90,8 @@ jobs: run: xcodegen generate - name: Build Fluxa Rust core + env: + FLUXA_BUILD_STREAMING_ENGINE: "1" run: appleApp/scripts/build-rust-core-xcframework.sh - name: Build iOS host diff --git a/appleApp/scripts/build-rust-core-xcframework.sh b/appleApp/scripts/build-rust-core-xcframework.sh index 189ccee..1f4c71f 100755 --- a/appleApp/scripts/build-rust-core-xcframework.sh +++ b/appleApp/scripts/build-rust-core-xcframework.sh @@ -22,13 +22,19 @@ build_rust_core() { } build_streaming_engine() { + local ios_deployment_target="${IPHONEOS_DEPLOYMENT_TARGET:-18.5}" + if [[ "$profile" == "Release" ]]; then - cargo build -p fluxa_streaming_engine --no-default-features --features apple "$@" --release + IPHONEOS_DEPLOYMENT_TARGET="$ios_deployment_target" cargo build -p fluxa_streaming_engine --no-default-features --features apple "$@" --release else - cargo build -p fluxa_streaming_engine --no-default-features --features apple "$@" + IPHONEOS_DEPLOYMENT_TARGET="$ios_deployment_target" cargo build -p fluxa_streaming_engine --no-default-features --features apple "$@" fi } +should_build_streaming_engine() { + [[ "${FLUXA_BUILD_STREAMING_ENGINE:-0}" == "1" ]] || [[ "${PLATFORM_NAME:-}" == "iphoneos" ]] || [[ "${PLATFORM_NAME:-}" == "iphonesimulator" ]] +} + targets=( aarch64-apple-ios aarch64-apple-ios-sim @@ -61,9 +67,11 @@ for target in "${targets[@]}"; do build_rust_core --target "$target" done -for target in aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios; do - build_streaming_engine --target "$target" -done +if should_build_streaming_engine; then + for target in aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios; do + build_streaming_engine --target "$target" + done +fi lipo -create \ "target/aarch64-apple-ios-sim/$cargo_profile/libfluxa_core.a" \ @@ -72,11 +80,13 @@ lipo -create \ cp "target/aarch64-apple-ios/$cargo_profile/libfluxa_core.a" "$output_dir/libfluxa_core-ios.a" cp "target/aarch64-apple-tvos/$cargo_profile/libfluxa_core.a" "$output_dir/libfluxa_core-tvos.a" cp "target/aarch64-apple-tvos-sim/$cargo_profile/libfluxa_core.a" "$output_dir/libfluxa_core-tvos-simulator.a" -lipo -create \ - "target/aarch64-apple-ios-sim/$cargo_profile/libfluxa_streaming_engine.a" \ - "target/x86_64-apple-ios/$cargo_profile/libfluxa_streaming_engine.a" \ - -output "$output_dir/libfluxa_streaming_engine-ios-simulator.a" -cp "target/aarch64-apple-ios/$cargo_profile/libfluxa_streaming_engine.a" "$output_dir/libfluxa_streaming_engine-ios.a" +if should_build_streaming_engine; then + lipo -create \ + "target/aarch64-apple-ios-sim/$cargo_profile/libfluxa_streaming_engine.a" \ + "target/x86_64-apple-ios/$cargo_profile/libfluxa_streaming_engine.a" \ + -output "$output_dir/libfluxa_streaming_engine-ios-simulator.a" + cp "target/aarch64-apple-ios/$cargo_profile/libfluxa_streaming_engine.a" "$output_dir/libfluxa_streaming_engine-ios.a" +fi cp "$output_dir/FluxaRustCoreFFI.h" "$headers_dir/FluxaRustCoreFFI.h" cp "$output_dir/FluxaRustCoreFFI.modulemap" "$headers_dir/module.modulemap"