]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
CMake: don't recheck compile flags every time
authorMichael Maltese <michaeljosephmaltese@gmail.com>
Thu, 20 Apr 2017 22:54:17 +0000 (15:54 -0700)
committerMichael Maltese <michaeljosephmaltese@gmail.com>
Fri, 21 Apr 2017 02:30:38 +0000 (19:30 -0700)
Doesn't cause a problem when embedded within a larger project, but is
annoying.

build/cmake/CMakeModules/AddZstdCompilationFlags.cmake

index 177db541c91e45a5cea3de07ce0401128f1942df..05ad864393594f113a658d9299c4b7ba18f87560 100644 (file)
@@ -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()