cmake: Fixed compiler flag macros.
authorAina Niemetz <aina.niemetz@gmail.com>
Mon, 13 Aug 2018 22:22:07 +0000 (15:22 -0700)
committerMathias Preiner <mathias.preiner@gmail.com>
Sat, 22 Sep 2018 23:30:59 +0000 (16:30 -0700)
CMakeLists.txt

index c54ddfd87e741c176d76dc2af8f5ef7e17be440e..26aa10f89d420dcee45dcd2ce102cc86e47eaada 100644 (file)
@@ -49,36 +49,61 @@ include(CheckCXXCompilerFlag)
 
 macro(add_c_flag flag)
   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}")
+  message(STATUS "Configuring with C flag '${flag}'")
+endmacro()
+
+macro(add_cxx_flag flag)
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
+  message(STATUS "Configuring with CXX flag '${flag}'")
+endmacro()
+
+macro(add_c_cxx_flag flag)
+  add_c_flag(${flag})
+  add_cxx_flag(${flag})
 endmacro()
 
 macro(add_check_c_flag flag)
-  check_c_compiler_flag("${flag}" HAVE_FLAG_${flag})
-  if(HAVE_FLAG_${flag})
+  string(REGEX REPLACE "[-=]" "_" flagname ${flag})
+  check_c_compiler_flag("${flag}" HAVE_FLAG${flagname})
+  if(HAVE_FLAG${flagname})
     add_c_flag(${flag})
   endif()
 endmacro()
 
-macro(add_cxx_flag flag)
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
-endmacro()
-
 macro(add_check_cxx_flag flag)
-  check_cxx_compiler_flag("${flag}" HAVE_FLAG_${flag})
-  if(HAVE_FLAG_${flag})
+  string(REGEX REPLACE "[-=]" "_" flagname ${flag})
+  check_cxx_compiler_flag("${flag}" HAVE_FLAG${flagname})
+  if(HAVE_FLAG${flagname})
     add_cxx_flag(${flag})
   endif()
 endmacro()
 
-macro(add_c_cxx_flag flag)
-  add_c_flag(${flag})
-  add_cxx_flag(${flag})
-  message(STATUS "Configure with flag '${flag}'")
-endmacro()
-
 macro(add_check_c_cxx_flag flag)
   add_check_c_flag(${flag})
   add_check_cxx_flag(${flag})
-  message(STATUS "Configure with flag '${flag}'")
+endmacro()
+
+macro(add_required_cxx_flag flag)
+  string(REGEX REPLACE "[-=]" "_" flagnamename ${flag})
+  check_cxx_compiler_flag("${flag}" HAVE_FLAG${flagname})
+  if (NOT HAVE_FLAG${flagname})
+    message(FATAL_ERROR "Required compiler flag ${flag} not supported")
+  endif()
+  add_cxx_flag(${flag})
+endmacro()
+
+macro(add_required_c_flag flag)
+  string(REGEX REPLACE "[-=]" "_" flagname ${flag})
+  check_c_compiler_flag("${flag}" HAVE_FLAG${flagname})
+  if (NOT HAVE_FLAG${flagname})
+    message(FATAL_ERROR "Required compiler flag ${flag} not supported")
+  endif()
+  add_c_flag(${flag})
+endmacro()
+
+macro(add_required_c_cxx_flag flag)
+  add_required_c_flag(${flag})
+  add_required_cxx_flag(${flag})
 endmacro()
 
 macro(cvc4_link_library library)