diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2a7cd82e..b51ee6c4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -180,6 +180,7 @@ jobs: clang-version: 20 - platform: iOS arm64 runner: macos-latest + rust-target: aarch64-apple-ios cmake-options: "-DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/cmake/toolchain/ios.cmake" - platform: macOS arm64 runner: macos-latest @@ -202,6 +203,10 @@ jobs: - name: Install Ninja uses: seanmiddleditch/gha-setup-ninja@v6 + - name: Install Rust Target + if: "${{ matrix.rust-target }}" + run: rustup target add ${{ matrix.rust-target }} + - name: Install Clang if: "${{ matrix.platform == 'Linux x86_64 Clang' }}" run: | diff --git a/src/icicle/CMakeLists.txt b/src/icicle/CMakeLists.txt index c50d4c30..51ea08a0 100644 --- a/src/icicle/CMakeLists.txt +++ b/src/icicle/CMakeLists.txt @@ -10,13 +10,19 @@ if(MSVC) set(ICICLE_RUST_LIB ${ICICLE_ARTIFACT_DIR}/${ICICLE_RUST_PROJECT_NAME}.lib) endif() +set(CARGO_OPTIONS "") + +if(CMAKE_SYSTEM_NAME STREQUAL "iOS") + set(CARGO_OPTIONS "--target=aarch64-apple-ios") +endif() + ExternalProject_Add( icicle-rust-project PREFIX ${CMAKE_CURRENT_BINARY_DIR} SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR} BINARY_DIR ${CMAKE_CURRENT_LIST_DIR} CONFIGURE_COMMAND "" - BUILD_COMMAND ${CMAKE_COMMAND} -E env "CARGO_TARGET_DIR=${ICICLE_BUILD_DIR}" cargo build --all-targets $,--lib,--release> + BUILD_COMMAND ${CMAKE_COMMAND} -E env "CARGO_TARGET_DIR=${ICICLE_BUILD_DIR}" cargo build ${CARGO_OPTIONS} --all-targets $,--lib,--release> INSTALL_COMMAND "" USES_TERMINAL_CONFIGURE 1 USES_TERMINAL_BUILD 1