From 46bcc2bea38ccce8a558f5937a60025f625a8378 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Fri, 14 Feb 2025 11:13:35 +0100 Subject: [PATCH] [cmake] fix CheckAndSetFlag Actually add the flags provided and not discard them. --- cmake/CheckAndSetFlag.cmake | 43 +++++++++++++++++++----------------- cmake/ExportAllSymbols.cmake | 2 +- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/cmake/CheckAndSetFlag.cmake b/cmake/CheckAndSetFlag.cmake index 5cf000a02..08df4a69a 100644 --- a/cmake/CheckAndSetFlag.cmake +++ b/cmake/CheckAndSetFlag.cmake @@ -1,28 +1,31 @@ include(CheckCCompilerFlag) include(CheckCXXCompilerFlag) +macro(RemoveFlag FLAG) + string(REPLACE "${FLAG}" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + string(REPLACE "${FLAG}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") +endmacro() + macro(CheckAndSetFlag FLAG) - if(FLAG) - get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES) + get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES) - unset(C_FLAG) - unset(CXX_FLAG) - if("C" IN_LIST languages) - check_c_compiler_flag("${FLAG}" C_FLAG) - if(C_FLAG) - string(APPEND CMAKE_C_FLAGS " ${FLAG}") - endif() - endif() - - if("CXX" IN_LIST languages) - check_cxx_compiler_flag("${FLAG}" CXX_FLAG) - if(CXX_FLAG) - string(APPEND CMAKE_CXX_FLAGS " ${FLAG}") - endif() - endif() - - if(NOT C_FLAG AND NOT CXX_FLAG) - message(WARNING "compiler does not support ${FLAG}") + unset(C_FLAG) + unset(CXX_FLAG) + if("C" IN_LIST languages) + check_c_compiler_flag("${FLAG}" C_FLAG) + if(C_FLAG) + string(APPEND CMAKE_C_FLAGS " ${FLAG}") endif() endif() + + if("CXX" IN_LIST languages) + check_cxx_compiler_flag("${FLAG}" CXX_FLAG) + if(CXX_FLAG) + string(APPEND CMAKE_CXX_FLAGS " ${FLAG}") + endif() + endif() + + if(NOT C_FLAG AND NOT CXX_FLAG) + message(WARNING "compiler does not support ${FLAG}") + endif() endmacro() diff --git a/cmake/ExportAllSymbols.cmake b/cmake/ExportAllSymbols.cmake index 76a543daf..33c47143e 100644 --- a/cmake/ExportAllSymbols.cmake +++ b/cmake/ExportAllSymbols.cmake @@ -4,8 +4,8 @@ option(EXPORT_ALL_SYMBOLS "Export all symbols form library" OFF) if(EXPORT_ALL_SYMBOLS) add_compile_definitions(EXPORT_ALL_SYMBOLS) + removeflag(-fvisibility=hidden) else() message(STATUS "${} default symbol visibility: hidden") - checkandsetflag(-fvisibility=hidden) endif()