summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/GenerateExportHeader
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2018-01-12 16:25:19 (GMT)
committerBrad King <brad.king@kitware.com>2018-01-12 16:50:10 (GMT)
commite1f0518de09a54065459a728993563d84fb85a6a (patch)
tree27cea0c41f0992d817d488c08f9a488dfabf0e45 /Tests/RunCMake/GenerateExportHeader
parenteae0a85d84fe12f058f8542aa4d05cfdf5c61cb1 (diff)
downloadCMake-e1f0518de09a54065459a728993563d84fb85a6a.zip
CMake-e1f0518de09a54065459a728993563d84fb85a6a.tar.gz
CMake-e1f0518de09a54065459a728993563d84fb85a6a.tar.bz2
GNU: Use -fvisibility on AIX when supported
Revise the logic from commit v3.7.0-rc1~173^2~2 (GNU: Do not use -fvisibility on AIX or HP-UX, 2016-09-03) to add a version check. The GCC 7 release notes [1] state that visibility support has been added for AIX 7.1 and above. [1] https://gcc.gnu.org/gcc-7/changes.html
Diffstat (limited to 'Tests/RunCMake/GenerateExportHeader')
-rw-r--r--Tests/RunCMake/GenerateExportHeader/GEH.cmake11
1 files changed, 10 insertions, 1 deletions
diff --git a/Tests/RunCMake/GenerateExportHeader/GEH.cmake b/Tests/RunCMake/GenerateExportHeader/GEH.cmake
index cfca8fe..cf81f36 100644
--- a/Tests/RunCMake/GenerateExportHeader/GEH.cmake
+++ b/Tests/RunCMake/GenerateExportHeader/GEH.cmake
@@ -53,7 +53,16 @@ endif()
add_subdirectory(lib_shared_and_static)
-add_compiler_export_flags()
+if(CMAKE_SYSTEM_NAME MATCHES "AIX" AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
+ AND CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY)
+ # With GNU 7 on AIX, passing -fvisibility=hidden when driving the
+ # linker for a shared library drops the so init/destruct symbols.
+ # Just use the modern approach instead of testing the macro.
+ set(CMAKE_CXX_VISIBILITY_PRESET hidden)
+ set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
+else()
+ add_compiler_export_flags()
+endif()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_BINARY_DIR})