summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2020-10-29 20:29:49 -0700
committerBrad King <brad.king@kitware.com>2020-11-04 14:21:26 -0500
commit4dca07882944ec5c1d87edf1b7df9f3c7294e0d0 (patch)
tree18cf6ef3bf33e1972df2d7460bf91890e194bf94
parent738caa4d488375a3b20921b366b86b6614bdc769 (diff)
downloadcmake-4dca07882944ec5c1d87edf1b7df9f3c7294e0d0.tar.gz
Android: Link c++abi and android_support when necessary
For older NDKs we used `__android_stl_lib` to link these libraries, but the `CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED` code path does not use that. Link the libraries the way the NDK toolchain file does: https://android.googlesource.com/platform/ndk/+/43b2de34ef9e3a70573fe51a9e069f985a4be5b9/build/cmake/android.toolchain.cmake#368
-rw-r--r--Modules/Platform/Android-Common.cmake6
1 files changed, 6 insertions, 0 deletions
diff --git a/Modules/Platform/Android-Common.cmake b/Modules/Platform/Android-Common.cmake
index bd41a9ce11..39da933003 100644
--- a/Modules/Platform/Android-Common.cmake
+++ b/Modules/Platform/Android-Common.cmake
@@ -53,6 +53,12 @@ if(CMAKE_ANDROID_STL_TYPE)
set(_ANDROID_STL_RTTI 0)
macro(__android_stl lang)
string(APPEND CMAKE_${lang}_FLAGS_INIT " -stdlib=libstdc++")
+ if(_ANDROID_STL_EXCEPTIONS OR _ANDROID_STL_RTTI)
+ string(APPEND CMAKE_${lang}_STANDARD_LIBRARIES " -lc++abi")
+ if(CMAKE_SYSTEM_VERSION LESS 21)
+ list(APPEND CMAKE_${lang}_STANDARD_LIBRARIES "-landroid_support")
+ endif()
+ endif()
endmacro()
elseif(CMAKE_ANDROID_STL_TYPE STREQUAL "c++_static")
set(_ANDROID_STL_EXCEPTIONS 1)