cmake 3.7.0-rc1 can't configure with c++_static project using Android NDK r13 release candidate
I can't configure a project with cmake 3.7.0-rc1 using CMAKE_ANDROID_STL_TYPE=c++_static
The NDK has rearranged its libc++ sources since r12b.
You can find the NDK r13 release candidates at https://partner.android.com/build?pli=1#p:id=buildlist&a=100621237&h=YnJhbmNoPWFvc3AtbmRrLXIxMy1yZWxlYXNlJnByb2R1Y3Q9bGludXg
I used Android NDK r13 build 3316327
Example:
cmake -G Ninja -DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \
-DCMAKE_ANDROID_NDK=$HOME/android-ndk-r13 \
-DCMAKE_ANDROID_STL_TYPE=c++_static \
../SPIRV-Headers
I get this result:
-- Android: Targeting API '24' with architecture 'arm64', ABI 'arm64-v8a', and processor 'aarch64'
-- Android: Selected GCC toolchain 'aarch64-linux-android-4.9'
-- The C compiler identification is GNU 4.9.0
-- The CXX compiler identification is GNU 4.9.0
-- Check for working C compiler: /local/android-ndk-r13/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-gcc
-- Check for working C compiler: /local/android-ndk-r13/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
CMake Error at /local/cmake-3.7.0-rc1/share/cmake-3.7/Modules/Platform/Android-Common.cmake:54 (message):
Android: STL 'c++_static' include directory not found:
/local/android-ndk-r13/sources/cxx-stl/llvm-libc++/libcxx/include
Call Stack (most recent call first):
/local/cmake-3.7.0-rc1/share/cmake-3.7/Modules/Platform/Android/ndk-stl-c++.cmake:6 (__android_stl_inc)
/local/cmake-3.7.0-rc1/share/cmake-3.7/Modules/Platform/Android/ndk-stl-c++_static.cmake:3 (__android_stl_cxx)
/local/cmake-3.7.0-rc1/share/cmake-3.7/Modules/Platform/Android-Common.cmake:146 (__android_stl)
/local/cmake-3.7.0-rc1/share/cmake-3.7/Modules/Platform/Android-GNU.cmake:32 (__android_compiler_common)
/local/cmake-3.7.0-rc1/share/cmake-3.7/Modules/Platform/Android-GNU-CXX.cmake:2 (__android_compiler_gnu)
/local/cmake-3.7.0-rc1/share/cmake-3.7/Modules/CMakeCXXInformation.cmake:48 (include)
CMakeLists.txt:32 (project)
-- Configuring incomplete, errors occurred!
I think the problem shows up when configuring any project. I used https://github.com/KhronosGroup/SPIRV-Headers in my test case because it's small and simple.