LiteRT-LM / cmake /toolchains /litertlm_android.script.cmake
SeaWolf-AI's picture
Upload full LiteRT-LM codebase
5f923cd verified
# ==============================================================================
# LiteRT-LM Android Orchestrator Script
# Executes ONCE in the root to prepare Phase 2 variables
# ==============================================================================
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
set(NDK_HOST_TAG "linux-x86_64")
elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
set(NDK_HOST_TAG "darwin-x86_64")
else()
message(FATAL_ERROR "[LiteRTLM] Unsupported host OS for Android cross-compilation.")
endif()
string(REPLACE "android-" "" API_LEVEL "${ANDROID_PLATFORM}")
if(ANDROID_ABI STREQUAL "arm64-v8a")
set(RUST_TARGET "aarch64-linux-android")
set(CARGO_ENV "CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER")
elseif(ANDROID_ABI STREQUAL "x86_64")
set(RUST_TARGET "x86_64-linux-android")
set(CARGO_ENV "CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER")
else()
message(WARNING "LiteRT-LM: Unmapped Rust target for ABI: ${ANDROID_ABI}")
endif()
set(RUST_LINKER_PATH "${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${NDK_HOST_TAG}/bin/${RUST_TARGET}${API_LEVEL}-clang")
list(APPEND LITERTLM_TOOLCHAIN_ARGS "-DLITERTLM_RUST_LINKER_OVERRIDE=${RUST_LINKER_PATH}")
list(APPEND LITERTLM_TOOLCHAIN_ARGS "-DLITERTLM_RUST_CARGO_ENV_VAR=${CARGO_ENV}")