LiteRT-LM / cmake /toolchains /litertlm_android.toolchain.cmake
SeaWolf-AI's picture
Upload full LiteRT-LM codebase
5f923cd verified
# ==============================================================================
# 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}")