mirror of
https://github.com/reactos/CMake.git
synced 2024-12-04 17:56:26 +00:00
Merge topic 'android-ndk-r18'
ca97d4cb5f
Android: Add support for NDK r18
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2319
This commit is contained in:
commit
14553ab64b
@ -30,7 +30,8 @@ set to specify the STL variant to be used. The value may be one of:
|
||||
``stlport_shared``
|
||||
STLport Shared
|
||||
|
||||
The default value is ``gnustl_static``. Note that this default differs from
|
||||
The default value is ``gnustl_static`` on NDK versions that provide it
|
||||
and otherwise ``c++_static``. Note that this default differs from
|
||||
the native NDK build system because CMake may be used to build projects for
|
||||
Android that are not natively implemented for it and use the C++ standard
|
||||
library.
|
||||
|
@ -32,8 +32,10 @@ if(CMAKE_ANDROID_NDK)
|
||||
)
|
||||
endif()
|
||||
unset(_ANDROID_STL_TYPE_FOUND)
|
||||
else()
|
||||
elseif(IS_DIRECTORY ${CMAKE_ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++)
|
||||
set(CMAKE_ANDROID_STL_TYPE "gnustl_static")
|
||||
else()
|
||||
set(CMAKE_ANDROID_STL_TYPE "c++_static")
|
||||
endif()
|
||||
|
||||
unset(_ANDROID_STL_TYPES)
|
||||
|
@ -35,7 +35,18 @@ elseif(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION)
|
||||
endif()
|
||||
set(_ANDROID_TOOL_PATTERNS "*-${CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION}")
|
||||
else()
|
||||
set(_ANDROID_TOOL_PATTERNS "*-[0-9].[0-9]")
|
||||
# If we can find any gcc toolchains then use one by default.
|
||||
# Otherwise we look for clang toolchains (e.g. NDK r18+).
|
||||
file(GLOB _ANDROID_CONFIG_MKS_FOR_GCC
|
||||
"${CMAKE_ANDROID_NDK}/build/core/toolchains/*-[0-9].[0-9]/config.mk"
|
||||
"${CMAKE_ANDROID_NDK}/toolchains/*-[0-9].[0-9]/config.mk"
|
||||
)
|
||||
if(_ANDROID_CONFIG_MKS_FOR_GCC)
|
||||
set(_ANDROID_TOOL_PATTERNS "*-[0-9].[0-9]")
|
||||
else()
|
||||
set(_ANDROID_TOOL_PATTERNS "*-clang")
|
||||
endif()
|
||||
unset(_ANDROID_CONFIG_MKS_FOR_GCC)
|
||||
endif()
|
||||
set(_ANDROID_CONFIG_MK_PATTERNS)
|
||||
foreach(base "build/core/toolchains" "toolchains")
|
||||
|
@ -61,8 +61,12 @@ foreach(ndk IN LISTS TEST_ANDROID_NDK)
|
||||
list(APPEND _abis_${_version} ${_abis})
|
||||
endif()
|
||||
endforeach()
|
||||
set(_abis_ ${_abis_${_latest_gcc}})
|
||||
set(_abis_clang ${_abis_${_latest_clang}})
|
||||
if(_latest_gcc)
|
||||
set(_abis_ ${_abis_${_latest_gcc}})
|
||||
else()
|
||||
set(_abis_ ${_abis_clang})
|
||||
endif()
|
||||
if(_versions MATCHES "clang")
|
||||
set(_versions "clang" ${_versions})
|
||||
endif()
|
||||
@ -132,10 +136,11 @@ foreach(ndk IN LISTS TEST_ANDROID_NDK)
|
||||
set(stl_types
|
||||
none
|
||||
system
|
||||
gnustl_static
|
||||
gnustl_shared
|
||||
)
|
||||
|
||||
if(IS_DIRECTORY "${ndk}/sources/cxx-stl/gnu-libstdc++")
|
||||
list(APPEND stl_types gnustl_static gnustl_shared)
|
||||
endif()
|
||||
if(IS_DIRECTORY "${ndk}/sources/cxx-stl/gabi++/libs")
|
||||
list(APPEND stl_types gabi++_static gabi++_shared)
|
||||
endif()
|
||||
|
@ -8,7 +8,6 @@ endif()
|
||||
foreach(f
|
||||
"${CMAKE_C_ANDROID_TOOLCHAIN_PREFIX}gcc${CMAKE_C_ANDROID_TOOLCHAIN_SUFFIX}"
|
||||
"${CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX}g++${CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX}"
|
||||
"${CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX}cpp${CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX}"
|
||||
"${CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX}ar${CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX}"
|
||||
"${CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX}ld${CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX}"
|
||||
)
|
||||
@ -61,10 +60,12 @@ execute_process(
|
||||
if(NOT _res EQUAL 0)
|
||||
message(SEND_ERROR "Failed to run 'gcc -dumpmachine':\n ${_res}")
|
||||
endif()
|
||||
if(NOT _out STREQUAL "${CMAKE_C_ANDROID_TOOLCHAIN_MACHINE}")
|
||||
string(REPLACE "--" "-" _out_check "${_out}")
|
||||
if(NOT _out_check STREQUAL "${CMAKE_C_ANDROID_TOOLCHAIN_MACHINE}"
|
||||
AND NOT (_out STREQUAL "arm--linux-android" AND CMAKE_C_ANDROID_TOOLCHAIN_MACHINE STREQUAL "arm-linux-androideabi"))
|
||||
message(SEND_ERROR "'gcc -dumpmachine' produced:\n"
|
||||
" ${_out}\n"
|
||||
"which is not equal to CMAKE_C_ANDROID_TOOLCHAIN_MACHINE:\n"
|
||||
"which does not match CMAKE_C_ANDROID_TOOLCHAIN_MACHINE:\n"
|
||||
" ${CMAKE_C_ANDROID_TOOLCHAIN_MACHINE}"
|
||||
)
|
||||
endif()
|
||||
|
Loading…
Reference in New Issue
Block a user