[CMake] Macro for adding cflags, odd quirk with CHECK_C_COMPILER_FLAG
Campbell Barton
ideasman42 at gmail.com
Thu Dec 16 13:07:37 EST 2010
Hi, we were having some problems with warnings and gcc versions so I
thought to write a macro that adds a flag to any string (typically
CMAKE_C_FLAGS)
ADD_CHECK_C_COMPILER_FLAG(CMAKE_C_FLAGS -Wno-unknown-pragmas)
...this is the macro.
macro(ADD_CHECK_C_COMPILER_FLAG
_CFLAGS
_FLAG)
include(CheckCCompilerFlag)
# odd workaround
set(CFLAG_TEST "CFLAG_TEST")
CHECK_C_COMPILER_FLAG("${_FLAG}" CFLAG_TEST)
if(CFLAG_TEST)
# message(STATUS "Using CFLAG: ${_FLAG}")
set(${_CFLAGS} "${${_CFLAGS}} ${_FLAG}")
else()
message(STATUS "Unsupported CFLAG: ${_FLAG}")
endif()
endmacro()
My question is why this is needed?
set(CFLAG_TEST "CFLAG_TEST")
CHECK_C_COMPILER_FLAG("${_FLAG}" CFLAG_TEST)
If I do this (as I see in other examples online)...
CHECK_C_COMPILER_FLAG("${_FLAG}" CFLAG_TEST)
This if check fails in CheckCSourceCompiles.cmake:28 ...
MACRO(CHECK_C_SOURCE_COMPILES SOURCE VAR)
IF("${VAR}" MATCHES "^${VAR}$")
This is confusing since from what I can tell CFLAG_TEST can be an
undefined variable.
Any idea whats going on?, CMake 2.8.3
--
- Campbell
More information about the CMake
mailing list