mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-25 16:09:42 -06:00
Add `COMPILE_WARNING_AS_ERROR` target property and supporting `CMAKE_COMPILE_WARNING_AS_ERROR` variable. `COMPILE_WARNING_AS_ERROR` is initialized by `CMAKE_COMPILE_WARNING_AS_ERROR`. It is a boolean variable. If it is true, it expands to a different flag depending on the compiler such that any warnings at compile will be treated as errors. Supports compiler ids that I could find a relevant flag for.
19 lines
901 B
CMake
19 lines
901 B
CMake
# add compile options to warning_options to ensure unused-function throws a warning
|
|
# if warning_options is NOT DEFINED, assume compiler doesn't support warning as error
|
|
macro(get_warning_options warning_options)
|
|
if (CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang|XLClang|IBMClang|LCC|NVCC|IntelLLVM)$")
|
|
set(${warning_options} "-Wall")
|
|
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC"
|
|
OR (CMAKE_CXX_COMPILER_ID STREQUAL "Intel" AND CMAKE_CXX_SIMULATE_ID MATCHES "MSVC"))
|
|
set(${warning_options} "-W4")
|
|
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
|
|
set(${warning_options} "-w3")
|
|
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "XL")
|
|
set(${warning_options} "-qinfo=all")
|
|
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
|
|
set(${warning_options} "+w;+w2")
|
|
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Fujitsu")
|
|
set(${warning_options} "SHELL:-w 8")
|
|
endif()
|
|
endmacro()
|