ed942f8c20
This warning can be ignored as on all supported platforms memory, file and network resources are cleared up on program termination.
67 lines
1.5 KiB
CMake
67 lines
1.5 KiB
CMake
include(CheckCXXCompilerFlag)
|
|
|
|
macro (checkCXXFlag FLAG)
|
|
check_cxx_compiler_flag("${FLAG}" CXXFLAG${FLAG})
|
|
if(CXXFLAG${FLAG})
|
|
string(APPEND CMAKE_CXX_FLAGS " ${FLAG}")
|
|
else()
|
|
message(WARNING "compiler does not support ${FLAG}")
|
|
endif()
|
|
endmacro()
|
|
|
|
option(ENABLE_WARNING_VERBOSE "enable -Weveryting (and some exceptions) for compile" ON)
|
|
option(ENABLE_WARNING_ERROR "enable -Werror for compile" OFF)
|
|
|
|
if (ENABLE_WARNING_VERBOSE)
|
|
if (MSVC)
|
|
# Remove previous warning definitions,
|
|
# NMake is otherwise complaining.
|
|
foreach (flags_var_to_scrub
|
|
CMAKE_CXX_FLAGS
|
|
CMAKE_CXX_FLAGS_DEBUG
|
|
CMAKE_CXX_FLAGS_RELEASE
|
|
CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
|
CMAKE_CXX_FLAGS_MINSIZEREL)
|
|
string (REGEX REPLACE "(^| )[/-]W[ ]*[1-9]" " "
|
|
"${flags_var_to_scrub}" "${${flags_var_to_scrub}}")
|
|
endforeach()
|
|
|
|
set(C_WARNING_FLAGS
|
|
/W4
|
|
/wo4324
|
|
)
|
|
else()
|
|
set(C_WARNING_FLAGS
|
|
-Weverything
|
|
-Wall
|
|
-Wpedantic
|
|
-Wno-padded
|
|
-Wno-switch-enum
|
|
-Wno-cast-align
|
|
-Wno-declaration-after-statement
|
|
-Wno-unsafe-buffer-usage
|
|
-Wno-reserved-identifier
|
|
-Wno-covered-switch-default
|
|
-Wno-disabled-macro-expansion
|
|
-Wno-language-extension-token
|
|
-Wno-ctad-maybe-unsupported
|
|
-Wno-c++98-compat
|
|
-Wno-c++98-compat-pedantic
|
|
-Wno-pre-c++17-compat
|
|
-Wno-exit-time-destructors
|
|
)
|
|
endif()
|
|
|
|
foreach(FLAG ${C_WARNING_FLAGS})
|
|
CheckCXXFlag(${FLAG})
|
|
endforeach()
|
|
endif()
|
|
|
|
|
|
if (ENABLE_WARNING_ERROR)
|
|
CheckCXXFlag(-Werror)
|
|
endif()
|
|
|
|
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} CACHE STRING "default CXXFLAGS")
|
|
message("Using CXXFLAGS ${CMAKE_CXX_FLAGS}")
|