Requirements:
- CMake >= 3.22.1
- NDK r25+
- Ninja 1.10+
- Android Studio with SDK Platforms (API 26+), Build-Tools, Platform-Tools, SDK Tools, NDK, and CMake installed.
Method 1: Direct CMake Build
Set ANDROID_NDK_HOME and use the Android toolchain file:
export ANDROID_NDK_HOME=$ANDROID_SDK_ROOT/ndk/X.Y.Z
cmake -S . -B build \
-D CMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \
-D ANDROID_PLATFORM=29 \
-D CMAKE_ANDROID_ARCH_ABI=arm64-v8a \
-D CMAKE_ANDROID_STL_TYPE=c++_static \
-D ANDROID_USE_LEGACY_TOOLCHAIN_FILE=NO \
-D CMAKE_BUILD_TYPE=Release \
-D UPDATE_DEPS=ON \
-G Ninja
cmake --build build
cmake --install build --prefix build/install
Method 2: Using scripts/android.py
This script places binaries in the build-android/libs directory.
Build for a single ABI:
python3 scripts/android.py --config Release --app-abi arm64-v8a
Build for multiple ABIs:
python3 scripts/android.py --config Release --app-abi 'armeabi-v7a arm64-v8a x86 x86_64'
# Build release binary for arm64-v8a using the script
python3 scripts/android.py --config Release --app-abi arm64-v8a