summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/Android/common.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2018-04-03 15:31:59 (GMT)
committerBrad King <brad.king@kitware.com>2018-04-03 18:34:57 (GMT)
commit843d55de295b0eeca2a028badde3b2f9a409cc72 (patch)
tree3ef22b1de380da49007e6fd5eb7684f51386868a /Tests/RunCMake/Android/common.cmake
parent12e6796b6289dbc910b9b7fe57f6b564edbc46dd (diff)
downloadCMake-843d55de295b0eeca2a028badde3b2f9a409cc72.zip
CMake-843d55de295b0eeca2a028badde3b2f9a409cc72.tar.gz
CMake-843d55de295b0eeca2a028badde3b2f9a409cc72.tar.bz2
Android: Suppress implicit -lstdc++ linker flag
The chosen STL libraries are already linked explicitly so we shouldn't let the compiler add its implicit `-lstdc++` (the default) when invoking the linker. Fixes: #17863 NDK-Issue: https://github.com/android-ndk/ndk/issues/105 Inspired-by: Tom Hughes <tomtheengineer@gmail.com>
Diffstat (limited to 'Tests/RunCMake/Android/common.cmake')
-rw-r--r--Tests/RunCMake/Android/common.cmake17
1 files changed, 17 insertions, 0 deletions
diff --git a/Tests/RunCMake/Android/common.cmake b/Tests/RunCMake/Android/common.cmake
index 015f202..f931be1 100644
--- a/Tests/RunCMake/Android/common.cmake
+++ b/Tests/RunCMake/Android/common.cmake
@@ -92,6 +92,23 @@ if(CMAKE_ANDROID_ARCH_ABI STREQUAL "armeabi-v7a")
endif()
add_executable(android_c android.c)
add_executable(android_cxx android.cxx)
+add_library(android_cxx_lib SHARED android_lib.cxx)
+
+set(objdump "${CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX}objdump")
+if(NOT EXISTS "${objdump}")
+ message(FATAL_ERROR "Expected tool missing:\n ${objdump}")
+endif()
+
+if(NOT CMAKE_ANDROID_STL_TYPE MATCHES "^(system|stlport_static|stlport_shared)$")
+ foreach(tgt android_cxx android_cxx_lib)
+ add_custom_command(TARGET ${tgt} POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ -Dobjdump=${objdump}
+ -Dfile=$<TARGET_FILE:${tgt}>
+ -P ${CMAKE_CURRENT_SOURCE_DIR}/check_binary.cmake
+ )
+ endforeach()
+endif()
# Test that an explicit /usr/include is ignored in favor of
# appearing as a standard include directory at the end.