|
|
@ -185,6 +185,7 @@ |
|
|
|
# :prop_tgt:`CXX_VISIBILITY_PRESET <<LANG>_VISIBILITY_PRESET>` and |
|
|
|
# :prop_tgt:`VISIBILITY_INLINES_HIDDEN` instead. |
|
|
|
|
|
|
|
include(CheckCCompilerFlag) |
|
|
|
include(CheckCXXCompilerFlag) |
|
|
|
|
|
|
|
# TODO: Install this macro separately? |
|
|
@ -194,6 +195,13 @@ macro(_check_cxx_compiler_attribute _ATTRIBUTE _RESULT) |
|
|
|
) |
|
|
|
endmacro() |
|
|
|
|
|
|
|
# TODO: Install this macro separately? |
|
|
|
macro(_check_c_compiler_attribute _ATTRIBUTE _RESULT) |
|
|
|
check_c_source_compiles("${_ATTRIBUTE} int somefunc() { return 0; } |
|
|
|
int main() { return somefunc();}" ${_RESULT} |
|
|
|
) |
|
|
|
endmacro() |
|
|
|
|
|
|
|
macro(_test_compiler_hidden_visibility) |
|
|
|
|
|
|
|
if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.2") |
|
|
@ -213,9 +221,15 @@ macro(_test_compiler_hidden_visibility) |
|
|
|
AND NOT CMAKE_CXX_COMPILER_ID MATCHES XL |
|
|
|
AND NOT CMAKE_CXX_COMPILER_ID MATCHES PGI |
|
|
|
AND NOT CMAKE_CXX_COMPILER_ID MATCHES Watcom) |
|
|
|
if (CMAKE_CXX_COMPILER_LOADED) |
|
|
|
check_cxx_compiler_flag(-fvisibility=hidden COMPILER_HAS_HIDDEN_VISIBILITY) |
|
|
|
check_cxx_compiler_flag(-fvisibility-inlines-hidden |
|
|
|
COMPILER_HAS_HIDDEN_INLINE_VISIBILITY) |
|
|
|
else() |
|
|
|
check_c_compiler_flag(-fvisibility=hidden COMPILER_HAS_HIDDEN_VISIBILITY) |
|
|
|
check_c_compiler_flag(-fvisibility-inlines-hidden |
|
|
|
COMPILER_HAS_HIDDEN_INLINE_VISIBILITY) |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
endmacro() |
|
|
|
|
|
|
@ -232,6 +246,7 @@ macro(_test_compiler_has_deprecated) |
|
|
|
set(COMPILER_HAS_DEPRECATED "" CACHE INTERNAL |
|
|
|
"Compiler support for a deprecated attribute") |
|
|
|
else() |
|
|
|
if (CMAKE_CXX_COMPILER_LOADED) |
|
|
|
_check_cxx_compiler_attribute("__attribute__((__deprecated__))" |
|
|
|
COMPILER_HAS_DEPRECATED_ATTR) |
|
|
|
if(COMPILER_HAS_DEPRECATED_ATTR) |
|
|
@ -241,6 +256,18 @@ macro(_test_compiler_has_deprecated) |
|
|
|
_check_cxx_compiler_attribute("__declspec(deprecated)" |
|
|
|
COMPILER_HAS_DEPRECATED) |
|
|
|
endif() |
|
|
|
else() |
|
|
|
_check_c_compiler_attribute("__attribute__((__deprecated__))" |
|
|
|
COMPILER_HAS_DEPRECATED_ATTR) |
|
|
|
if(COMPILER_HAS_DEPRECATED_ATTR) |
|
|
|
set(COMPILER_HAS_DEPRECATED "${COMPILER_HAS_DEPRECATED_ATTR}" |
|
|
|
CACHE INTERNAL "Compiler support for a deprecated attribute") |
|
|
|
else() |
|
|
|
_check_c_compiler_attribute("__declspec(deprecated)" |
|
|
|
COMPILER_HAS_DEPRECATED) |
|
|
|
endif() |
|
|
|
|
|
|
|
endif() |
|
|
|
endif() |
|
|
|
endmacro() |
|
|
|
|
|
|
|