Android: Add CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG variable
The NDK provides prebuilt toolchain files in directories named for the host architecture. The NDK build system calls this `HOST_TAG`. Expose the value publicly for use by clients that need to pass it to external tools. Suggested-by: Ruslan Baratov <ruslan_baratov@yahoo.com>
This commit is contained in:
parent
236d6244a0
commit
0d3eb139e1
|
@ -241,6 +241,7 @@ Variables that Control the Build
|
||||||
/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES
|
/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES
|
||||||
/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES
|
/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES
|
||||||
/variable/CMAKE_ANDROID_NDK
|
/variable/CMAKE_ANDROID_NDK
|
||||||
|
/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG
|
||||||
/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION
|
/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION
|
||||||
/variable/CMAKE_ANDROID_PROCESS_MAX
|
/variable/CMAKE_ANDROID_PROCESS_MAX
|
||||||
/variable/CMAKE_ANDROID_PROGUARD
|
/variable/CMAKE_ANDROID_PROGUARD
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
When :ref:`Cross Compiling for Android with the NDK`, this variable
|
||||||
|
provides the NDK's "host tag" used to construct the path to prebuilt
|
||||||
|
toolchains that run on the host.
|
|
@ -210,6 +210,7 @@ endif()
|
||||||
# Help CMakeFindBinUtils locate things.
|
# Help CMakeFindBinUtils locate things.
|
||||||
set(_CMAKE_TOOLCHAIN_PREFIX "${_ANDROID_TOOL_PREFIX}")
|
set(_CMAKE_TOOLCHAIN_PREFIX "${_ANDROID_TOOL_PREFIX}")
|
||||||
|
|
||||||
|
set(_ANDROID_TOOL_NDK_TOOLCHAIN_HOST_TAG "${_ANDROID_HOST_DIR}")
|
||||||
set(_ANDROID_TOOL_NDK_TOOLCHAIN_VERSION "${_ANDROID_TOOL_VERS_NDK}")
|
set(_ANDROID_TOOL_NDK_TOOLCHAIN_VERSION "${_ANDROID_TOOL_VERS_NDK}")
|
||||||
|
|
||||||
set(_ANDROID_TOOL_C_TOOLCHAIN_VERSION "${_ANDROID_TOOL_VERS}")
|
set(_ANDROID_TOOL_C_TOOLCHAIN_VERSION "${_ANDROID_TOOL_VERS}")
|
||||||
|
|
|
@ -58,4 +58,5 @@ else()
|
||||||
set(_ANDROID_TOOL_CXX_COMPILER_EXTERNAL_TOOLCHAIN "")
|
set(_ANDROID_TOOL_CXX_COMPILER_EXTERNAL_TOOLCHAIN "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(_ANDROID_TOOL_NDK_TOOLCHAIN_HOST_TAG "")
|
||||||
set(_ANDROID_TOOL_NDK_TOOLCHAIN_VERSION "")
|
set(_ANDROID_TOOL_NDK_TOOLCHAIN_VERSION "")
|
||||||
|
|
|
@ -40,6 +40,7 @@ if(CMAKE_ANDROID_NDK)
|
||||||
elseif(CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
|
elseif(CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
|
||||||
include(Platform/Android/Determine-Compiler-Standalone)
|
include(Platform/Android/Determine-Compiler-Standalone)
|
||||||
else()
|
else()
|
||||||
|
set(_ANDROID_TOOL_NDK_TOOLCHAIN_HOST_TAG "")
|
||||||
set(_ANDROID_TOOL_NDK_TOOLCHAIN_VERSION "")
|
set(_ANDROID_TOOL_NDK_TOOLCHAIN_VERSION "")
|
||||||
set(_ANDROID_TOOL_C_COMPILER "")
|
set(_ANDROID_TOOL_C_COMPILER "")
|
||||||
set(_ANDROID_TOOL_C_TOOLCHAIN_VERSION "")
|
set(_ANDROID_TOOL_C_TOOLCHAIN_VERSION "")
|
||||||
|
@ -62,6 +63,7 @@ macro(__android_determine_compiler lang)
|
||||||
|
|
||||||
# Save the Android-specific information in CMake${lang}Compiler.cmake.
|
# Save the Android-specific information in CMake${lang}Compiler.cmake.
|
||||||
set(CMAKE_${lang}_COMPILER_CUSTOM_CODE "
|
set(CMAKE_${lang}_COMPILER_CUSTOM_CODE "
|
||||||
|
set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG \"${_ANDROID_TOOL_NDK_TOOLCHAIN_HOST_TAG}\")
|
||||||
set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION \"${_ANDROID_TOOL_NDK_TOOLCHAIN_VERSION}\")
|
set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION \"${_ANDROID_TOOL_NDK_TOOLCHAIN_VERSION}\")
|
||||||
set(CMAKE_${lang}_ANDROID_TOOLCHAIN_VERSION \"${_ANDROID_TOOL_${lang}_TOOLCHAIN_VERSION}\")
|
set(CMAKE_${lang}_ANDROID_TOOLCHAIN_VERSION \"${_ANDROID_TOOL_${lang}_TOOLCHAIN_VERSION}\")
|
||||||
set(CMAKE_${lang}_COMPILER_EXTERNAL_TOOLCHAIN \"${_ANDROID_TOOL_${lang}_COMPILER_EXTERNAL_TOOLCHAIN}\")
|
set(CMAKE_${lang}_COMPILER_EXTERNAL_TOOLCHAIN \"${_ANDROID_TOOL_${lang}_COMPILER_EXTERNAL_TOOLCHAIN}\")
|
||||||
|
|
|
@ -32,6 +32,14 @@ if(CMAKE_ANDROID_NDK)
|
||||||
"which does not appear in CMAKE_C_COMPILER:\n"
|
"which does not appear in CMAKE_C_COMPILER:\n"
|
||||||
" ${CMAKE_C_COMPILER}")
|
" ${CMAKE_C_COMPILER}")
|
||||||
endif()
|
endif()
|
||||||
|
if(NOT CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG)
|
||||||
|
message(SEND_ERROR "CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG is not set!")
|
||||||
|
elseif(NOT "${CMAKE_C_COMPILER}" MATCHES "prebuilt/${CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG}/bin")
|
||||||
|
message(SEND_ERROR "CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG is\n"
|
||||||
|
" ${CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG}\n"
|
||||||
|
"which does not appear in CMAKE_C_COMPILER:\n"
|
||||||
|
" ${CMAKE_C_COMPILER}")
|
||||||
|
endif()
|
||||||
elseif(CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
|
elseif(CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/clang --version
|
COMMAND ${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/bin/clang --version
|
||||||
|
|
Loading…
Reference in New Issue