@ -155,6 +155,10 @@
# I m p l i e s - f r t t i - f n o - e x c e p t i o n s .
# A v a i l a b l e f o r N D K r 7 b a n d n e w e r .
# S i l e n t l y d e g r a d e s t o g n u s t l _ s t a t i c i f n o t a v a i l a b l e .
# c + + _ s t a t i c - > U s e t h e L L V M l i b c + + r u n t i m e a s a s t a t i c l i b r a r y .
# I m p l i e s - f r t t i - f e x c e p t i o n s .
# c + + _ s h a r e d - > U s e t h e L L V M l i b c + + r u n t i m e a s a s t a t i c l i b r a r y .
# I m p l i e s - f r t t i - f n o - e x c e p t i o n s .
#
# A N D R O I D _ S T L _ F O R C E _ F E A T U R E S = O N - t u r n r t t i a n d e x c e p t i o n s s u p p o r t b a s e d o n
# c h o s e n r u n t i m e . I f d i s a b l e d , t h e n t h e u s e r i s r e s p o n s i b l e f o r s e t t i n g s
@ -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 } \".
T h e p o s s i b l e v a l u e s a r e :
n o n e - > D o n o t c o n f i g u r e t h e r u n t i m e .
@ -854,15 +858,19 @@ The possible values are:
s t l p o r t _ s h a r e d - > U s e t h e S T L p o r t r u n t i m e a s a s h a r e d l i b r a r y .
g n u s t l _ s t a t i c - > ( d e f a u l t ) U s e t h e G N U S T L a s a s t a t i c l i b r a r y .
g n u s t l _ s h a r e d - > U s e t h e G N U S T L a s a s h a r e d l i b r a r y .
c + + _ s h a r e d - > U s e t h e L L V M l i b c + + r u n t i m e a s a s h a r e d l i b r a r y .
c + + _ s t a t i c - > U s e t h e L L V M l i b c + + r u n t i m e a s a s t a t i c l i b r a r y .
" )
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 } \".
T h e p o s s i b l e v a l u e s a r e :
n o n e - > D o n o t c o n f i g u r e t h e r u n t i m e .
g n u s t l _ s t a t i c - > ( d e f a u l t ) U s e t h e G N U S T L a s a s t a t i c l i b r a r y .
g n u s t l _ s h a r e d - > U s e t h e G N U S T L a s a s h a r e d l i b r a r y .
c + + _ s h a r e d - > U s e t h e L L V M l i b c + + r u n t i m e a s a s h a r e d l i b r a r y .
c + + _ s t a t i c - > U s e t h e L L V M l i b c + + r u n t i m e a s a s t a t i c l i b r a r y .
" )
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 ( )
# f i n d l i b s u p c + + . a - r t t i & e x c e p t i o n s
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" ) # r 8 b o r n e w e r
@ -1067,7 +1083,9 @@ endif()
# c a s e o f s h a r e d S T L l i n k a g e
if ( ANDROID_STL MATCHES "shared" AND DEFINED __libstl )
string ( REPLACE "_static.a" "_shared.so" __libstl "${__libstl}" )
# T O D O : c h e c k i f . s o f i l e e x i s t s b e f o r e t h e r e n a m i n g
if ( NOT EXISTS "${__libstl}" )
message ( FATAL_ERROR "Unable to find shared library ${__libstl}" )
endif ( )
endif ( )