浏览代码

Merge topic 'CheckCompilerFlag-do-not-use-FLAGS'

a639689c Check*CompilerFlag: Revert to previous method used to pass flags (#15641)
Brad King 10 年之前
父节点
当前提交
3723fe94e6

+ 4 - 4
Modules/CheckCCompilerFlag.cmake

@@ -13,7 +13,7 @@
 #            Will be created as an internal cache variable.
 #
 # This internally calls the check_c_source_compiles macro and sets
-# CMAKE_REQUIRED_FLAGS to <flag>.  See help for
+# CMAKE_REQUIRED_DEFINITIONS to <flag>.  See help for
 # CheckCSourceCompiles for a listing of variables that can otherwise
 # modify the build.  The result only tells that the compiler does not
 # give an error message when it encounters the flag.  If the flag has
@@ -38,8 +38,8 @@ include(CheckCSourceCompiles)
 include(CMakeCheckCompilerFlagCommonPatterns)
 
 macro (CHECK_C_COMPILER_FLAG _FLAG _RESULT)
-   set(SAFE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
-   set(CMAKE_REQUIRED_FLAGS "${_FLAG}")
+   set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
+   set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
 
    # Normalize locale during test compilation.
    set(_CheckCCompilerFlag_LOCALE_VARS LC_ALL LC_MESSAGES LANG)
@@ -60,5 +60,5 @@ macro (CHECK_C_COMPILER_FLAG _FLAG _RESULT)
    unset(_CheckCCompilerFlag_LOCALE_VARS)
    unset(_CheckCCompilerFlag_COMMON_PATTERNS)
 
-   set (CMAKE_REQUIRED_FLAGS "${SAFE_CMAKE_REQUIRED_FLAGS}")
+   set (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
 endmacro ()

+ 4 - 4
Modules/CheckCXXCompilerFlag.cmake

@@ -12,7 +12,7 @@
 #   <var>  - variable to store the result
 #
 # This internally calls the check_cxx_source_compiles macro and sets
-# CMAKE_REQUIRED_FLAGS to <flag>.  See help for
+# CMAKE_REQUIRED_DEFINITIONS to <flag>.  See help for
 # CheckCXXSourceCompiles for a listing of variables that can otherwise
 # modify the build.  The result only tells that the compiler does not
 # give an error message when it encounters the flag.  If the flag has
@@ -37,8 +37,8 @@ include(CheckCXXSourceCompiles)
 include(CMakeCheckCompilerFlagCommonPatterns)
 
 macro (CHECK_CXX_COMPILER_FLAG _FLAG _RESULT)
-   set(SAFE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
-   set(CMAKE_REQUIRED_FLAGS "${_FLAG}")
+   set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
+   set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
 
    # Normalize locale during test compilation.
    set(_CheckCXXCompilerFlag_LOCALE_VARS LC_ALL LC_MESSAGES LANG)
@@ -59,6 +59,6 @@ macro (CHECK_CXX_COMPILER_FLAG _FLAG _RESULT)
    unset(_CheckCXXCompilerFlag_LOCALE_VARS)
    unset(_CheckCXXCompilerFlag_COMMON_PATTERNS)
 
-   set (CMAKE_REQUIRED_FLAGS "${SAFE_CMAKE_REQUIRED_FLAGS}")
+   set (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
 endmacro ()
 

+ 4 - 4
Modules/CheckFortranCompilerFlag.cmake

@@ -13,7 +13,7 @@
 #            Will be created as an internal cache variable.
 #
 # This internally calls the check_fortran_source_compiles macro and
-# sets CMAKE_REQUIRED_FLAGS to <flag>.  See help for
+# sets CMAKE_REQUIRED_DEFINITIONS to <flag>.  See help for
 # CheckFortranSourceCompiles for a listing of variables that can
 # otherwise modify the build.  The result only tells that the compiler
 # does not give an error message when it encounters the flag.  If the
@@ -40,8 +40,8 @@ include(CheckFortranSourceCompiles)
 include(CMakeCheckCompilerFlagCommonPatterns)
 
 macro (CHECK_Fortran_COMPILER_FLAG _FLAG _RESULT)
-  set(SAFE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
-  set(CMAKE_REQUIRED_FLAGS "${_FLAG}")
+  set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
+  set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
 
   # Normalize locale during test compilation.
   set(_CheckFortranCompilerFlag_LOCALE_VARS LC_ALL LC_MESSAGES LANG)
@@ -62,5 +62,5 @@ macro (CHECK_Fortran_COMPILER_FLAG _FLAG _RESULT)
   unset(_CheckFortranCompilerFlag_LOCALE_VARS)
   unset(_CheckFortranCompilerFlag_COMMON_PATTERNS)
 
-  set (CMAKE_REQUIRED_FLAGS "${SAFE_CMAKE_REQUIRED_FLAGS}")
+  set (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
 endmacro ()

+ 7 - 0
Tests/CMakeOnly/CheckCXXCompilerFlag/CMakeLists.txt

@@ -56,3 +56,10 @@ if(CMAKE_COMPILER_IS_GNUCXX)
 else()
   message("Unhandled Platform")
 endif()
+
+if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
+  check_cxx_compiler_flag("-x c++" HAVE_X_CXX)
+  if(NOT HAVE_X_CXX)
+    message(FATAL_ERROR "${CMAKE_CXX_COMPILER_ID} compiler flag '-x c++' check failed")
+  endif()
+endif()