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
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to