forked from bartvdbraak/blender
fix for error in testing C/C++ flags
This commit is contained in:
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()
|
||||
|
Loading…
Reference in New Issue
Block a user