# ============================================================================== # LiteRT-LM Android Toolchain Wrapper # ============================================================================== list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES ANDROID_NDK_ROOT ANDROID_ABI ANDROID_PLATFORM ANDROID_STL CMAKE_SYSTEM_NAME CMAKE_SYSTEM_VERSION CMAKE_ANDROID_ARCH_ABI CMAKE_ANDROID_NDK CMAKE_ANDROID_STL_TYPE ) if(NOT DEFINED ANDROID_ABI) set(ANDROID_ABI "arm64-v8a" CACHE STRING "Target Android Architecture") if(NOT CMAKE_C_COMPILER_LOADED) message(STATUS "[LiteRTLM] No ANDROID_ABI provided. Defaulting to ${ANDROID_ABI}.") endif() endif() if(NOT DEFINED ANDROID_PLATFORM) set(ANDROID_PLATFORM "android-28" CACHE STRING "Target Android API Level") if(NOT CMAKE_C_COMPILER_LOADED) message(STATUS "[LiteRTLM] No ANDROID_PLATFORM provided. Defaulting to ${ANDROID_PLATFORM}.") endif() endif() if(NOT DEFINED ANDROID_STL) set(ANDROID_STL "c++_shared" CACHE STRING "Target Android STL") endif() if(NOT DEFINED CMAKE_SYSTEM_NAME) set(CMAKE_SYSTEM_NAME "Android" CACHE STRING "Target OS") endif() if(NOT DEFINED CMAKE_ANDROID_ARCH_ABI) set(CMAKE_ANDROID_ARCH_ABI "${ANDROID_ABI}" CACHE STRING "Target Android Architecture (Native)") endif() if(NOT DEFINED CMAKE_SYSTEM_VERSION) string(REPLACE "android-" "" _API_LEVEL "${ANDROID_PLATFORM}") set(CMAKE_SYSTEM_VERSION "${_API_LEVEL}" CACHE STRING "Target Android API Level (Native)") endif() if(NOT DEFINED CMAKE_ANDROID_STL_TYPE) set(CMAKE_ANDROID_STL_TYPE "${ANDROID_STL}" CACHE STRING "Target Android STL (Native)") endif() if(NOT DEFINED CMAKE_ANDROID_NDK) set(CMAKE_ANDROID_NDK "${_LITERTLM_NDK_ROOT}" CACHE PATH "Path to the Android NDK (Native)") endif() set(_REAL_NDK_TOOLCHAIN "${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake") if(NOT EXISTS "${_REAL_NDK_TOOLCHAIN}") message(FATAL_ERROR "[LiteRTLM] Could not find the Android NDK toolchain at: ${_REAL_NDK_TOOLCHAIN}") endif() list(APPEND LITERTLM_TOOLCHAIN_ARGS # Legacy Google Variables "-DANDROID_ABI=${ANDROID_ABI}" "-DANDROID_PLATFORM=${ANDROID_PLATFORM}" "-DANDROID_STL=${ANDROID_STL}" "-DANDROID_NDK_ROOT=${ANDROID_NDK_ROOT}" # Native CMake Variables (The Bridge for Corrosion/Rust) "-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}" "-DCMAKE_SYSTEM_VERSION=${CMAKE_SYSTEM_VERSION}" "-DCMAKE_ANDROID_ARCH_ABI=${CMAKE_ANDROID_ARCH_ABI}" "-DCMAKE_ANDROID_STL_TYPE=${CMAKE_ANDROID_STL_TYPE}" "-DCMAKE_ANDROID_NDK=${CMAKE_ANDROID_NDK}" ) include("${_REAL_NDK_TOOLCHAIN}")