diff --git a/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake b/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake index 177db541c..05ad86439 100644 --- a/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake +++ b/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake @@ -2,20 +2,21 @@ include(CheckCXXCompilerFlag) 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()