[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