Android standalone NDK not able to find Clang toolchain on Windows
I was successful build a small project with the Android NDK 10e on Windows, using the NMake Makefiles and the clang
compiler. The verbose build shows that the compiler is the correct one (although I have to specify -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang3.6
on the command line ... just clang
does not work).
I am unable to do the same with a standalone NDK. I exported the NDK using the NDK tools as described on the NDK pages, but CMake always configure the project for using gcc
instead of clang
. After digging, it is unable to find the program clang.exe
inside the bin folder of the toolchain. This is the following line in the Android/Determine-Compiler-Standalone.cmake
file:
if(EXISTS "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/clang${_ANDROID_HOST_EXT}")
The reason is simply because, for this version of the NDK, clang.cmd
exists while clang.exe
, and the variable _ANDROID_HOST_EXT
is set to .exe
. Replacing the previous line with
if(EXISTS "${_ANDROID_TOOL_C_TOOLCHAIN_PREFIX}clang${_ANDROID_TOOL_C_TOOLCHAIN_SUFFIX}")
instead does not help, again because of the _ANDROID_TOOL_C_TOOLCHAIN_SUFFIX
which equals to _ANDROID_HOST_EXT
. Again, arm-linux-androideabi-clang.cmd
is there, while arm-linux-androideabi-clang.exe
is not. There is also arm-linux-androideabi-clang
but it seems that this is a sh
script.
A slightly more general approach would be that _ANDROID_HOST_EXT
is a list containing .exe
and .cmd
on windows.
Am I missing something? Thank you, Raffi
Environment:
- cmake 3.11
- android NDK 10e
- Windows 10
- Windows terminal using the visual developers command prompt