include(CheckCCompilerFlag)
function(EnableCompilerFlag _flag _C _CXX)
- message("Checking flag ${_flag}")
+ string(REGEX REPLACE "\\+" "PLUS" varname "${_flag}")
+ string(REGEX REPLACE "[^A-Za-z0-9]+" "_" varname "${varname}")
+ string(REGEX REPLACE "^_+" "" varname "${varname}")
+ string(TOUPPER "${varname}" varname)
if (_C)
- CHECK_C_COMPILER_FLAG(${_flag} C_FLAG)
- if (C_FLAG)
+ CHECK_C_COMPILER_FLAG(${_flag} C_FLAG_${varname})
+ if (C_FLAG_${varname})
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_flag}" CACHE INTERNAL "C Flags")
endif ()
- unset(C_FLAG CACHE)
endif ()
if (_CXX)
- CHECK_CXX_COMPILER_FLAG(${_flag} CXX_FLAG)
- if (CXX_FLAG)
+ CHECK_CXX_COMPILER_FLAG(${_flag} CXX_FLAG_${varname})
+ if (CXX_FLAG_${varname})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_flag}" CACHE INTERNAL "CXX Flags")
endif ()
- unset(CXX_FLAG CACHE)
endif ()
endfunction()