fix for error in testing C/C++ flags

This commit is contained in:
Campbell Barton 2010-12-16 17:54:00 +00:00
parent e836d2a169
commit b978bf39e3

@ -275,15 +275,34 @@ macro(remove_strict_flags)
endmacro()
# XXX, until cmake fix this bug! from CheckCCompilerFlag.cmakem reported 11615
INCLUDE(CheckCSourceCompiles)
MACRO (CHECK_C_COMPILER_FLAG__INTERNAL _FLAG _RESULT)
SET(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
SET(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
CHECK_C_SOURCE_COMPILES("int main(void) { return 0;}" ${_RESULT}
# Some compilers do not fail with a bad flag
FAIL_REGEX "unrecognized .*option" # GNU
FAIL_REGEX "ignoring unknown option" # MSVC
FAIL_REGEX "[Uu]nknown option" # HP
FAIL_REGEX "[Ww]arning: [Oo]ption" # SunPro
FAIL_REGEX "command option .* is not recognized" # XL
)
SET (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
ENDMACRO (CHECK_C_COMPILER_FLAG__INTERNAL)
# XXX, end duplicate code.
macro(ADD_CHECK_C_COMPILER_FLAG
_CFLAGS
_FLAG)
include(CheckCCompilerFlag)
# include(CheckCCompilerFlag)
CHECK_C_COMPILER_FLAG(${_FLAG} SUPPORT_WALL)
if(SUPPORT_WALL)
# odd workaround
set(CFLAG_TEST "CFLAG_TEST")
CHECK_C_COMPILER_FLAG__INTERNAL("${_FLAG}" CFLAG_TEST)
if(CFLAG_TEST)
# message(STATUS "Using CFLAG: ${_FLAG}")
set(${_CFLAGS} "${${_CFLAGS}} ${_FLAG}")
else()
@ -297,9 +316,10 @@ macro(ADD_CHECK_CXX_COMPILER_FLAG
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG(${_FLAG} SUPPORT_WALL)
if(SUPPORT_WALL)
# odd workaround
set(CFLAG_TEST "CXXFLAG_TEST")
CHECK_CXX_COMPILER_FLAG("${_FLAG}" CXXFLAG_TEST)
if(CXXFLAG_TEST)
# message(STATUS "Using CXXFLAG: ${_FLAG}")
set(${_CXXFLAGS} "${${_CXXFLAGS}} ${_FLAG}")
else()