From 32ebda5fe7c748dbbb58c6bfd36404f38e541684 Mon Sep 17 00:00:00 2001 From: momo5502 Date: Wed, 26 Mar 2025 15:47:33 +0100 Subject: [PATCH] Support android --- .github/workflows/build.yml | 2 ++ src/icicle/CMakeLists.txt | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b51ee6c4..d1c25e75 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -189,10 +189,12 @@ jobs: - platform: Android x86_64 runner: ubuntu-24.04 abi: x86_64 + rust-target: x86_64-linux-android cmake-options: "-DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/cmake/toolchain/android-ndk.cmake" - platform: Android arm64-v8a runner: ubuntu-24.04 abi: arm64-v8a + rust-target: aarch64-linux-android cmake-options: "-DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/cmake/toolchain/android-ndk.cmake" steps: - name: Checkout Source diff --git a/src/icicle/CMakeLists.txt b/src/icicle/CMakeLists.txt index 51ea08a0..79f07c8f 100644 --- a/src/icicle/CMakeLists.txt +++ b/src/icicle/CMakeLists.txt @@ -14,6 +14,12 @@ set(CARGO_OPTIONS "") if(CMAKE_SYSTEM_NAME STREQUAL "iOS") set(CARGO_OPTIONS "--target=aarch64-apple-ios") +elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") + if(CMAKE_ANDROID_ARCH_ABI STREQUAL "arm64-v8a") + set(CARGO_OPTIONS "--target=aarch64-linux-android") + else() + set(CARGO_OPTIONS "--target=${CMAKE_ANDROID_ARCH_ABI}-linux-android") + endif() endif() ExternalProject_Add( @@ -22,7 +28,7 @@ ExternalProject_Add( 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 ${CARGO_OPTIONS} --all-targets $,--lib,--release> + BUILD_COMMAND ${CMAKE_COMMAND} -E env "CARGO_TARGET_DIR=${ICICLE_BUILD_DIR}" cargo build ${CARGO_OPTIONS} --lib $,-v,--release> INSTALL_COMMAND "" USES_TERMINAL_CONFIGURE 1 USES_TERMINAL_BUILD 1