summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorVladislav Vaintroub <wlad@sun.com>2010-01-06 12:31:35 +0000
committerVladislav Vaintroub <wlad@sun.com>2010-01-06 12:31:35 +0000
commit645628d4f3b6898e27859dc1fbc1a5d8a92edcaf (patch)
tree94715ef3b957143c6cd19bedde5c4a241df9eb21 /cmake
parent756e708fa1bf29fce9acc53879f7b8791744cbbe (diff)
parente698ae01128fde4f82d4595e67a72cfac09ca125 (diff)
downloadmariadb-git-645628d4f3b6898e27859dc1fbc1a5d8a92edcaf.tar.gz
Do not use fvisibility flag if GCC does not support it
(i.e if gcc version < 4)
Diffstat (limited to '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()