summaryrefslogtreecommitdiff
path: root/cmake/libutils.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/libutils.cmake')
-rw-r--r--cmake/libutils.cmake15
1 files changed, 9 insertions, 6 deletions
diff --git a/cmake/libutils.cmake b/cmake/libutils.cmake
index 5198cd3a898..e4b4e980b00 100644
--- a/cmake/libutils.cmake
+++ b/cmake/libutils.cmake
@@ -279,12 +279,15 @@ ENDFUNCTION()
MACRO(RESTRICT_SYMBOL_EXPORTS target)
IF(CMAKE_COMPILER_IS_GNUCXX AND UNIX)
- GET_TARGET_PROPERTY(COMPILE_FLAGS ${target} COMPILE_FLAGS)
- IF(NOT COMPILE_FLAGS)
- # Avoid COMPILE_FLAGS-NOTFOUND
- SET(COMPILE_FLAGS)
+ CHECK_C_COMPILER_FLAG("-fvisibility=hidden" HAVE_VISIBILITY_HIDDEN)
+ IF(HAVE_VISIBILITY_HIDDEN)
+ GET_TARGET_PROPERTY(COMPILE_FLAGS ${target} COMPILE_FLAGS)
+ IF(NOT COMPILE_FLAGS)
+ # Avoid COMPILE_FLAGS-NOTFOUND
+ SET(COMPILE_FLAGS)
+ ENDIF()
+ SET_TARGET_PROPERTIES(${target} PROPERTIES
+ COMPILE_FLAGS "${COMPILE_FLAGS} -fvisibility=hidden")
ENDIF()
- SET_TARGET_PROPERTIES(${target} PROPERTIES
- COMPILE_FLAGS "${COMPILE_FLAGS} -fvisibility=hidden")
ENDIF()
ENDMACRO()