# CMake toolchain to build for Android 5.0 or newer. Sample usage: # # ANDROID_BIN="/path/to/android-ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/" \ # ANDROID_CPP="/path/to/android-ndk/sources/cxx-stl/llvm-libc++/" \ # ANDROID_CC="/path/to/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" \ # ANDROID_ROOT="/path/to/android-ndk/platforms/android-21/arch-arm64/" \ # cmake -DCMAKE_TOOLCHAIN_FILE=android-arm64.cmake -DCMAKE_INSTALL_PREFIX=.. set(CMAKE_SYSTEM_NAME UnixPaths) set(CMAKE_SYSTEM_PROCESSOR arm64) set(ANDROID TRUE) set(CMAKE_C_COMPILER "$ENV{ANDROID_CC}") set(CMAKE_CXX_COMPILER "$ENV{ANDROID_CC}++") set(CMAKE_C_LINK_EXECUTABLE " -target aarch64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lm -lc") set(CMAKE_CXX_LINK_EXECUTABLE " -target aarch64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/arm64-v8a/ -nostdlib++ -lc++_static -lc++abi -lm -lc") set(CMAKE_C_CREATE_SHARED_LIBRARY " -target aarch64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -lm -lc") set(CMAKE_CXX_CREATE_SHARED_LIBRARY " -target aarch64-none-linux-android -Wl,--no-undefined -z text -o -gcc-toolchain $ENV{ANDROID_BIN} --sysroot=$ENV{ANDROID_ROOT} -L$ENV{ANDROID_CPP}/libs/arm64-v8a/ -nostdlib++ -lc++_static -lc++abi -lm -lc") add_definitions(-D__ANDROID_API__=21 -DANDROID -fPIC -ffunction-sections -funwind-tables -fstack-protector-strong -target aarch64-none-linux-android -march=armv8-a) include_directories("$ENV{ANDROID_CPP}/include/" "$ENV{ANDROID_CPP}/../llvm-libc++abi/include/" "$ENV{ANDROID_NDK}/sources/android/support/include/" "$ENV{ANDROID_CPP}/libs/arm64-v8a/include/" "$ENV{ANDROID_NDK}/sysroot/usr/include/" "$ENV{ANDROID_NDK}/sysroot/usr/include/aarch64-linux-android/" "$ENV{ANDROID_ROOT}/usr/include/")