diff options
author | Brad King <brad.king@kitware.com> | 2019-07-26 16:48:35 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-07-26 18:17:07 (GMT) |
commit | 97bca2f9fab58fcf5bbcb29e1e7e86e37b5cc1e0 (patch) | |
tree | 048fee25cd8797b3527994c504c5b8ce50e2ede2 /Modules/Platform/Android-Initialize.cmake | |
parent | 19f36c5fb2497703e4f071b3a9424a8d121ccef9 (diff) | |
download | CMake-97bca2f9fab58fcf5bbcb29e1e7e86e37b5cc1e0.zip CMake-97bca2f9fab58fcf5bbcb29e1e7e86e37b5cc1e0.tar.gz CMake-97bca2f9fab58fcf5bbcb29e1e7e86e37b5cc1e0.tar.bz2 |
Android: Use unified toolchain in NDK r19+
The NDK build system now uses only a single toolchain in
<ndk>/toolchains/llvm/prebuilt/<host>
Its compilers are always `bin/{clang,clang++}` and its binutils are
always `bin/<triple>-*`. It is a standalone toolchain:
* The Anrdoid API level is specified at the end of `--target=`.
* The standard library may be specified via `-stdlib=`.
* No need to pass system includes or libraries explicitly.
* No need to pass `--sysroot` or `-gcc-toolchain`.
Teach CMake to recognize NDK versions that have a unified
toolchain with its own sysroot and use the above approach.
Fixes: #18739
Diffstat (limited to 'Modules/Platform/Android-Initialize.cmake')
-rw-r--r-- | Modules/Platform/Android-Initialize.cmake | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Modules/Platform/Android-Initialize.cmake b/Modules/Platform/Android-Initialize.cmake index 1dcb939..a5d2820 100644 --- a/Modules/Platform/Android-Initialize.cmake +++ b/Modules/Platform/Android-Initialize.cmake @@ -19,6 +19,11 @@ endif() set(CMAKE_BUILD_TYPE_INIT Debug) +# Skip sysroot selection if the NDK has a unified toolchain. +if(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED) + return() +endif() + if(NOT CMAKE_SYSROOT) if(CMAKE_ANDROID_NDK) set(CMAKE_SYSROOT "${CMAKE_ANDROID_NDK}/platforms/android-${CMAKE_SYSTEM_VERSION}/arch-${CMAKE_ANDROID_ARCH}") |