mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -06:00
Android: Select the STL type for NDK builds
Populate standard include directories and link libraries for the platform. Select the STL corresponding to CMAKE_ANDROID_STL_TYPE and matching the current ABI and toolchain to be used. Refer to the NDK sources/cxx-stl/*/Android.mk files for the needed file locations.
This commit is contained in:
13
Modules/Platform/Android/ndk-stl-c++.cmake
Normal file
13
Modules/Platform/Android/ndk-stl-c++.cmake
Normal file
@@ -0,0 +1,13 @@
|
||||
# <ndk>/sources/cxx-stl/llvm-libc++/Android.mk
|
||||
set(_ANDROID_STL_RTTI 1)
|
||||
set(_ANDROID_STL_EXCEPTIONS 1)
|
||||
macro(__android_stl_cxx lang filename)
|
||||
# Add the include directory.
|
||||
__android_stl_inc(${lang} "${CMAKE_ANDROID_NDK}/sources/cxx-stl/llvm-libc++/libcxx/include" 1)
|
||||
|
||||
# Add a secondary include directory if it exists.
|
||||
__android_stl_inc(${lang} "${CMAKE_ANDROID_NDK}/sources/android/support/include" 0)
|
||||
|
||||
# Add the library file.
|
||||
__android_stl_lib(${lang} "${CMAKE_ANDROID_NDK}/sources/cxx-stl/llvm-libc++/libs/${CMAKE_ANDROID_ARCH_ABI}/${filename}" 1)
|
||||
endmacro()
|
||||
4
Modules/Platform/Android/ndk-stl-c++_shared.cmake
Normal file
4
Modules/Platform/Android/ndk-stl-c++_shared.cmake
Normal file
@@ -0,0 +1,4 @@
|
||||
include(Platform/Android/ndk-stl-c++)
|
||||
macro(__android_stl lang)
|
||||
__android_stl_cxx(${lang} libc++_shared.so)
|
||||
endmacro()
|
||||
6
Modules/Platform/Android/ndk-stl-c++_static.cmake
Normal file
6
Modules/Platform/Android/ndk-stl-c++_static.cmake
Normal file
@@ -0,0 +1,6 @@
|
||||
include(Platform/Android/ndk-stl-c++)
|
||||
macro(__android_stl lang)
|
||||
__android_stl_cxx(${lang} libc++_static.a)
|
||||
__android_stl_lib(${lang} "${CMAKE_ANDROID_NDK}/sources/cxx-stl/llvm-libc++/libs/${CMAKE_ANDROID_ARCH_ABI}/libc++abi.a" 0)
|
||||
__android_stl_lib(${lang} "${CMAKE_ANDROID_NDK}/sources/cxx-stl/llvm-libc++/libs/${CMAKE_ANDROID_ARCH_ABI}/libandroid_support.a" 0)
|
||||
endmacro()
|
||||
7
Modules/Platform/Android/ndk-stl-gabi++.cmake
Normal file
7
Modules/Platform/Android/ndk-stl-gabi++.cmake
Normal file
@@ -0,0 +1,7 @@
|
||||
# <ndk>/sources/cxx-stl/gabi++/Android.mk
|
||||
set(_ANDROID_STL_RTTI 1)
|
||||
set(_ANDROID_STL_EXCEPTIONS 1)
|
||||
macro(__android_stl_gabixx lang filename)
|
||||
__android_stl_inc(${lang} "${CMAKE_ANDROID_NDK}/sources/cxx-stl/gabi++/include" 1)
|
||||
__android_stl_lib(${lang} "${CMAKE_ANDROID_NDK}/sources/cxx-stl/gabi++/libs/${CMAKE_ANDROID_ARCH_ABI}/${filename}" 1)
|
||||
endmacro()
|
||||
4
Modules/Platform/Android/ndk-stl-gabi++_shared.cmake
Normal file
4
Modules/Platform/Android/ndk-stl-gabi++_shared.cmake
Normal file
@@ -0,0 +1,4 @@
|
||||
include(Platform/Android/ndk-stl-gabi++)
|
||||
macro(__android_stl lang)
|
||||
__android_stl_gabixx(${lang} libgabi++_shared.so)
|
||||
endmacro()
|
||||
4
Modules/Platform/Android/ndk-stl-gabi++_static.cmake
Normal file
4
Modules/Platform/Android/ndk-stl-gabi++_static.cmake
Normal file
@@ -0,0 +1,4 @@
|
||||
include(Platform/Android/ndk-stl-gabi++)
|
||||
macro(__android_stl lang)
|
||||
__android_stl_gabixx(${lang} libgabi++_static.a)
|
||||
endmacro()
|
||||
9
Modules/Platform/Android/ndk-stl-gnustl.cmake
Normal file
9
Modules/Platform/Android/ndk-stl-gnustl.cmake
Normal file
@@ -0,0 +1,9 @@
|
||||
# <ndk>/sources/cxx-stl/gnu-libstdc++/Android.mk
|
||||
set(_ANDROID_STL_RTTI 1)
|
||||
set(_ANDROID_STL_EXCEPTIONS 1)
|
||||
macro(__android_stl_gnustl lang filename)
|
||||
__android_stl_inc(${lang} "${CMAKE_ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/${CMAKE_${lang}_ANDROID_TOOLCHAIN_VERSION}/include" 1)
|
||||
__android_stl_inc(${lang} "${CMAKE_ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/${CMAKE_${lang}_ANDROID_TOOLCHAIN_VERSION}/libs/${CMAKE_ANDROID_ARCH_ABI}/include" 1)
|
||||
__android_stl_inc(${lang} "${CMAKE_ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/${CMAKE_${lang}_ANDROID_TOOLCHAIN_VERSION}/include/backward" 1)
|
||||
__android_stl_lib(${lang} "${CMAKE_ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/${CMAKE_${lang}_ANDROID_TOOLCHAIN_VERSION}/libs/${CMAKE_ANDROID_ARCH_ABI}/${filename}" 1)
|
||||
endmacro()
|
||||
4
Modules/Platform/Android/ndk-stl-gnustl_shared.cmake
Normal file
4
Modules/Platform/Android/ndk-stl-gnustl_shared.cmake
Normal file
@@ -0,0 +1,4 @@
|
||||
include(Platform/Android/ndk-stl-gnustl)
|
||||
macro(__android_stl lang)
|
||||
__android_stl_gnustl(${lang} libgnustl_shared.so)
|
||||
endmacro()
|
||||
4
Modules/Platform/Android/ndk-stl-gnustl_static.cmake
Normal file
4
Modules/Platform/Android/ndk-stl-gnustl_static.cmake
Normal file
@@ -0,0 +1,4 @@
|
||||
include(Platform/Android/ndk-stl-gnustl)
|
||||
macro(__android_stl lang)
|
||||
__android_stl_gnustl(${lang} libgnustl_static.a)
|
||||
endmacro()
|
||||
2
Modules/Platform/Android/ndk-stl-none.cmake
Normal file
2
Modules/Platform/Android/ndk-stl-none.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
macro(__android_stl lang)
|
||||
endmacro()
|
||||
7
Modules/Platform/Android/ndk-stl-stlport.cmake
Normal file
7
Modules/Platform/Android/ndk-stl-stlport.cmake
Normal file
@@ -0,0 +1,7 @@
|
||||
# <ndk>/sources/cxx-stl/stlport/Android.mk
|
||||
set(_ANDROID_STL_RTTI 1)
|
||||
set(_ANDROID_STL_EXCEPTIONS 1)
|
||||
macro(__android_stl_stlport lang filename)
|
||||
__android_stl_inc(${lang} "${CMAKE_ANDROID_NDK}/sources/cxx-stl/stlport/stlport" 1)
|
||||
__android_stl_lib(${lang} "${CMAKE_ANDROID_NDK}/sources/cxx-stl/stlport/libs/${CMAKE_ANDROID_ARCH_ABI}/${filename}" 1)
|
||||
endmacro()
|
||||
4
Modules/Platform/Android/ndk-stl-stlport_shared.cmake
Normal file
4
Modules/Platform/Android/ndk-stl-stlport_shared.cmake
Normal file
@@ -0,0 +1,4 @@
|
||||
include(Platform/Android/ndk-stl-stlport)
|
||||
macro(__android_stl lang)
|
||||
__android_stl_stlport(${lang} libstlport_shared.so)
|
||||
endmacro()
|
||||
4
Modules/Platform/Android/ndk-stl-stlport_static.cmake
Normal file
4
Modules/Platform/Android/ndk-stl-stlport_static.cmake
Normal file
@@ -0,0 +1,4 @@
|
||||
include(Platform/Android/ndk-stl-stlport)
|
||||
macro(__android_stl lang)
|
||||
__android_stl_stlport(${lang} libstlport_static.a)
|
||||
endmacro()
|
||||
6
Modules/Platform/Android/ndk-stl-system.cmake
Normal file
6
Modules/Platform/Android/ndk-stl-system.cmake
Normal file
@@ -0,0 +1,6 @@
|
||||
# <ndk>/android-ndk-r11c/sources/cxx-stl/system/Android.mk
|
||||
set(_ANDROID_STL_RTTI 0)
|
||||
set(_ANDROID_STL_EXCEPTIONS 0)
|
||||
macro(__android_stl lang)
|
||||
__android_stl_inc(${lang} "${CMAKE_ANDROID_NDK}/sources/cxx-stl/system/include" 1)
|
||||
endmacro()
|
||||
Reference in New Issue
Block a user