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) 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}") endif() endmacro()