From 377401f161e413962630e4f98a9e4eb55335cd7c Mon Sep 17 00:00:00 2001 From: Michael Maltese Date: Thu, 20 Apr 2017 15:54:17 -0700 Subject: [PATCH] CMake: don't recheck compile flags every time Doesn't cause a problem when embedded within a larger project, but is annoying. --- .../CMakeModules/AddZstdCompilationFlags.cmake | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) 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()