diff options
Diffstat (limited to 'Modules/GenerateExportHeader.cmake')
-rw-r--r-- | Modules/GenerateExportHeader.cmake | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/Modules/GenerateExportHeader.cmake b/Modules/GenerateExportHeader.cmake index 92b9433..f690655 100644 --- a/Modules/GenerateExportHeader.cmake +++ b/Modules/GenerateExportHeader.cmake @@ -140,6 +140,20 @@ macro(_test_compiler_hidden_visibility) endif() endmacro() +macro(_test_compiler_has_deprecated) + if (WIN32) + if (NOT ${CMAKE_CXX_COMPILER_ID} MATCHES Borland) + set(COMPILER_HAS_DEPRECATED TRUE) + endif() + else() + # TODO: Test properly for this + if(COMPILER_HAS_HIDDEN_VISIBILITY AND USE_COMPILER_HIDDEN_VISIBILITY) + set(COMPILER_HAS_DEPRECATED TRUE) + endif() + endif() + set(COMPILER_HAS_DEPRECATED "${COMPILER_HAS_DEPRECATED}" CACHE INTERNAL "Compiler support for a deprecated attribute") +endmacro() + set(myDir ${CMAKE_CURRENT_LIST_DIR}) macro(_DO_SET_MACRO_VALUES TARGET_LIBRARY) @@ -149,13 +163,11 @@ macro(_DO_SET_MACRO_VALUES TARGET_LIBRARY) set(DEFINE_NO_EXPORT) if(WIN32) - message("Compiler is ${CMAKE_CXX_COMPILER_ID}") - if (NOT ${CMAKE_CXX_COMPILER_ID} MATCHES Borland) - message("Deprecation macro enabled.") + if (COMPILER_HAS_DEPRECATED) set(DEFINE_DEPRECATED "__declspec(deprecated)") endif() else() - if(COMPILER_HAS_HIDDEN_VISIBILITY AND USE_COMPILER_HIDDEN_VISIBILITY) + if(COMPILER_HAS_DEPRECATED) set(DEFINE_DEPRECATED "__attribute__ ((__deprecated__))") endif() endif() @@ -244,6 +256,7 @@ function(GENERATE_EXPORT_HEADER TARGET_LIBRARY) return() endif() _test_compiler_hidden_visibility() + _test_compiler_has_deprecated() _do_set_macro_values(${TARGET_LIBRARY}) _do_generate_export_header(${TARGET_LIBRARY} ${ARGN}) endfunction() @@ -251,6 +264,7 @@ endfunction() function(add_compiler_export_flags) _test_compiler_hidden_visibility() + _test_compiler_has_deprecated() if(NOT (USE_COMPILER_HIDDEN_VISIBILITY AND COMPILER_HAS_HIDDEN_VISIBILITY)) message(WARNING "Compiler doesn't have hidden visibility") |