|
|
|
@ -155,6 +155,10 @@ |
|
|
|
|
# Implies -frtti -fno-exceptions. |
|
|
|
|
# Available for NDK r7b and newer. |
|
|
|
|
# Silently degrades to gnustl_static if not available. |
|
|
|
|
# c++_static -> Use the LLVM libc++ runtime as a static library. |
|
|
|
|
# Implies -frtti -fexceptions. |
|
|
|
|
# c++_shared -> Use the LLVM libc++ runtime as a static library. |
|
|
|
|
# Implies -frtti -fno-exceptions. |
|
|
|
|
# |
|
|
|
|
# ANDROID_STL_FORCE_FEATURES=ON - turn rtti and exceptions support based on |
|
|
|
|
# chosen runtime. If disabled, then the user is responsible for settings |
|
|
|
@ -842,7 +846,7 @@ set( ANDROID_STL_FORCE_FEATURES ON CACHE BOOL "automatically configure rtti and |
|
|
|
|
mark_as_advanced( ANDROID_STL ANDROID_STL_FORCE_FEATURES ) |
|
|
|
|
|
|
|
|
|
if( BUILD_WITH_ANDROID_NDK ) |
|
|
|
|
if( NOT "${ANDROID_STL}" MATCHES "^(none|system|system_re|gabi\\+\\+_static|gabi\\+\\+_shared|stlport_static|stlport_shared|gnustl_static|gnustl_shared)$") |
|
|
|
|
if( NOT "${ANDROID_STL}" MATCHES "^(none|system|system_re|gabi\\+\\+_static|gabi\\+\\+_shared|stlport_static|stlport_shared|gnustl_static|gnustl_shared|c\\+\\+_static|c\\+\\+_shared)$") |
|
|
|
|
message( FATAL_ERROR "ANDROID_STL is set to invalid value \"${ANDROID_STL}\". |
|
|
|
|
The possible values are: |
|
|
|
|
none -> Do not configure the runtime. |
|
|
|
@ -854,15 +858,19 @@ The possible values are: |
|
|
|
|
stlport_shared -> Use the STLport runtime as a shared library. |
|
|
|
|
gnustl_static -> (default) Use the GNU STL as a static library. |
|
|
|
|
gnustl_shared -> Use the GNU STL as a shared library. |
|
|
|
|
c++_shared -> Use the LLVM libc++ runtime as a shared library. |
|
|
|
|
c++_static -> Use the LLVM libc++ runtime as a static library. |
|
|
|
|
" ) |
|
|
|
|
endif() |
|
|
|
|
elseif( BUILD_WITH_STANDALONE_TOOLCHAIN ) |
|
|
|
|
if( NOT "${ANDROID_STL}" MATCHES "^(none|gnustl_static|gnustl_shared)$") |
|
|
|
|
if( NOT "${ANDROID_STL}" MATCHES "^(none|gnustl_static|gnustl_shared|c\\+\\+_static|c\\+\\+_shared)$") |
|
|
|
|
message( FATAL_ERROR "ANDROID_STL is set to invalid value \"${ANDROID_STL}\". |
|
|
|
|
The possible values are: |
|
|
|
|
none -> Do not configure the runtime. |
|
|
|
|
gnustl_static -> (default) Use the GNU STL as a static library. |
|
|
|
|
gnustl_shared -> Use the GNU STL as a shared library. |
|
|
|
|
c++_shared -> Use the LLVM libc++ runtime as a shared library. |
|
|
|
|
c++_static -> Use the LLVM libc++ runtime as a static library. |
|
|
|
|
" ) |
|
|
|
|
endif() |
|
|
|
|
endif() |
|
|
|
@ -1035,9 +1043,17 @@ if( BUILD_WITH_ANDROID_NDK ) |
|
|
|
|
else() |
|
|
|
|
set( __libstl "${__libstl}/libs/${ANDROID_NDK_ABI_NAME}/libstdc++.a" ) |
|
|
|
|
endif() |
|
|
|
|
elseif( ANDROID_STL MATCHES "c\\+\\+" ) |
|
|
|
|
set( ANDROID_EXCEPTIONS ON ) |
|
|
|
|
set( ANDROID_RTTI ON ) |
|
|
|
|
set( __libstl "${ANDROID_NDK}/sources/cxx-stl/llvm-libc++" ) |
|
|
|
|
set( __libstl "${__libstl}/libs/${ANDROID_NDK_ABI_NAME}/libc++_static.a" ) |
|
|
|
|
set( __libgnustl "${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/${ANDROID_COMPILER_VERSION}" ) |
|
|
|
|
set( ANDROID_STL_INCLUDE_DIRS "${__libgnustl}/include" "${__libgnustl}/libs/${ANDROID_NDK_ABI_NAME}/include" "${__libgnustl}/include/backward" ) |
|
|
|
|
else() |
|
|
|
|
message( FATAL_ERROR "Unknown runtime: ${ANDROID_STL}" ) |
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
# find libsupc++.a - rtti & exceptions |
|
|
|
|
if( ANDROID_STL STREQUAL "system_re" OR ANDROID_STL MATCHES "gnustl" ) |
|
|
|
|
set( __libsupcxx "${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/${ANDROID_COMPILER_VERSION}/libs/${ANDROID_NDK_ABI_NAME}/libsupc++.a" ) # r8b or newer |
|
|
|
@ -1067,7 +1083,9 @@ endif() |
|
|
|
|
# case of shared STL linkage |
|
|
|
|
if( ANDROID_STL MATCHES "shared" AND DEFINED __libstl ) |
|
|
|
|
string( REPLACE "_static.a" "_shared.so" __libstl "${__libstl}" ) |
|
|
|
|
# TODO: check if .so file exists before the renaming |
|
|
|
|
if( NOT EXISTS "${__libstl}" ) |
|
|
|
|
message( FATAL_ERROR "Unable to find shared library ${__libstl}" ) |
|
|
|
|
endif() |
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|