cmake/compile_flag.cmake

28 lines
1.0 KiB
CMake
Raw Normal View History

2017-01-17 21:25:31 +11:00
include(CheckCXXCompilerFlag)
2017-01-17 19:20:12 +11:00
macro (append_compile_flag _flag)
string (MAKE_C_IDENTIFIER ${_flag} _name)
if (NOT DEFINED compile_flag_${_name})
# If we have an argument of the form "-Wno-foo" then we can't test it
# directly as GCC will unconditioally succeed right up until the
# point any other warning or error is triggered and *then* dump a
# warning message.
#
# Instead you have to test for -Wfoo and only if that succeeds can
# you use the negation.
string (REGEX MATCH "^-Wno-(.+)$" compile_flag_inverse ${_flag})
if ("x" STREQUAL "x${compile_flag_inverse}")
check_cxx_compiler_flag (${_flag} compile_flag${_name})
else ()
string (REGEX REPLACE "-Wno-" "" _inverse_flag ${_flag})
check_cxx_compiler_flag ("-W${_inverse_flag}" compile_flag${_name})
endif ()
2017-01-17 19:20:12 +11:00
endif ()
if (compile_flag${_name})
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_flag}")
endif()
2017-01-17 19:20:12 +11:00
endmacro(append_compile_flag)