[Cmake-commits] [cmake-commits] king committed CheckCCompilerFlag.cmake 1.3 1.4 CheckCXXCompilerFlag.cmake 1.2 1.3

cmake-commits at cmake.org cmake-commits at cmake.org
Thu Sep 17 15:32:56 EDT 2009


Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv6317/Modules

Modified Files:
	CheckCCompilerFlag.cmake CheckCXXCompilerFlag.cmake 
Log Message:
Fix CHECK_(C|CXX)_COMPILER_FLAG for GNU and MSVC

These compilers warn and return 0 for unrecognized flags.  We fix the
compiler flag check macros by looking for a warning in the output.
See issue #9516.


Index: CheckCCompilerFlag.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CheckCCompilerFlag.cmake,v
retrieving revision 1.3
retrieving revision 1.4
diff -C 2 -d -r1.3 -r1.4
*** CheckCCompilerFlag.cmake	17 Sep 2009 19:28:50 -0000	1.3
--- CheckCCompilerFlag.cmake	17 Sep 2009 19:32:54 -0000	1.4
***************
*** 18,22 ****
     SET(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
     SET(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
!    CHECK_C_SOURCE_COMPILES("int main() { return 0;}" ${_RESULT})
     SET (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
  ENDMACRO (CHECK_C_COMPILER_FLAG)
--- 18,26 ----
     SET(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
     SET(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
!    CHECK_C_SOURCE_COMPILES("int main() { return 0;}" ${_RESULT}
!      # Some compilers do not fail with a bad flag
!      FAIL_REGEX "unrecognized option"                       # GNU
!      FAIL_REGEX "ignoring unknown option"                   # MSVC
!      )
     SET (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
  ENDMACRO (CHECK_C_COMPILER_FLAG)

Index: CheckCXXCompilerFlag.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CheckCXXCompilerFlag.cmake,v
retrieving revision 1.2
retrieving revision 1.3
diff -C 2 -d -r1.2 -r1.3
*** CheckCXXCompilerFlag.cmake	17 Sep 2009 19:28:51 -0000	1.2
--- CheckCXXCompilerFlag.cmake	17 Sep 2009 19:32:54 -0000	1.3
***************
*** 18,22 ****
     SET(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
     SET(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
!    CHECK_CXX_SOURCE_COMPILES("int main() { return 0;}" ${_RESULT})
     SET (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
  ENDMACRO (CHECK_CXX_COMPILER_FLAG)
--- 18,26 ----
     SET(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
     SET(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
!    CHECK_CXX_SOURCE_COMPILES("int main() { return 0;}" ${_RESULT}
!      # Some compilers do not fail with a bad flag
!      FAIL_REGEX "unrecognized option"                       # GNU
!      FAIL_REGEX "ignoring unknown option"                   # MSVC
!      )
     SET (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
  ENDMACRO (CHECK_CXX_COMPILER_FLAG)



More information about the Cmake-commits mailing list