Commit 9f9c54c4 authored by Artur Wojcik's avatar Artur Wojcik
Browse files

warnings

parent 9a2a8710
...@@ -23,65 +23,31 @@ ...@@ -23,65 +23,31 @@
##################################################################################### #####################################################################################
# - Enable warning all for gcc/clang or use /W4 for visual studio # - Enable warning all for gcc/clang or use /W4 for visual studio
## Strict warning level ## Strict compile options for Visual C++ compiler
if (MSVC) set(__default_msvc_compile_options /w)
# Use the highest warning level for visual studio.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /w")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /w")
# set(CMAKE_CXX_WARNING_LEVEL 4)
# if (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
# string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
# else ()
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
# endif ()
# set(CMAKE_C_WARNING_LEVEL 4) ## Strict compile options for GNU/Clang compilers
# if (CMAKE_C_FLAGS MATCHES "/W[0-4]") set(__default_compile_options
# string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") -Wall -Wextra
# else ()
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
# endif ()
else()
foreach(COMPILER C CXX)
set(CMAKE_COMPILER_WARNINGS)
# use -Wall for gcc and clang
list(APPEND CMAKE_COMPILER_WARNINGS
-Wall
-Wextra
-Wcomment -Wcomment
-Wendif-labels -Wendif-labels
-Wformat -Wformat
-Winit-self -Winit-self
-Wreturn-type -Wreturn-type
-Wsequence-point -Wsequence-point
# Shadow is broken on gcc when using lambdas
# -Wshadow
-Wswitch -Wswitch
-Wtrigraphs -Wtrigraphs
-Wundef -Wundef
-Wuninitialized -Wuninitialized
-Wunreachable-code -Wunreachable-code
-Wunused -Wunused
-Wno-sign-compare -Wno-sign-compare
) -Wno-reserved-macro-identifier)
# Flags for gcc 7
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") ## Strict compile options for Clang compilers
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "7.0") set(__default_clang_compile_options
list(APPEND CMAKE_COMPILER_WARNINGS
-Wduplicated-branches
-Wduplicated-cond
-Wno-noexcept-type
-Wodr
-Wshift-negative-value
-Wshift-overflow=2
)
endif()
endif()
if (CMAKE_${COMPILER}_COMPILER_ID MATCHES "Clang")
list(APPEND CMAKE_COMPILER_WARNINGS
-Weverything -Weverything
-Wshadow
-Wno-c++98-compat -Wno-c++98-compat
-Wno-c++98-compat-pedantic -Wno-c++98-compat-pedantic
-Wno-conversion -Wno-conversion
...@@ -101,17 +67,33 @@ else() ...@@ -101,17 +67,33 @@ else()
-Wno-unused-command-line-argument -Wno-unused-command-line-argument
-Wno-weak-vtables -Wno-weak-vtables
-Wno-c99-extensions -Wno-c99-extensions
# -Wno-c++2a-designator -fno-sanitize=function,vptr)
)
else() if(WIN32)
list(APPEND CMAKE_COMPILER_WARNINGS list(APPEND __default_clang_compile_options
-fms-extensions
-fms-compatibility
-fdelayed-template-parsing)
endif()
set(__default_gnu_compile_options
-Wduplicated-branches
-Wduplicated-cond
-Wno-noexcept-type
-Wodr
-Wshift-negative-value
-Wshift-overflow=2
-Wno-missing-field-initializers -Wno-missing-field-initializers
-Wno-maybe-uninitialized -Wno-maybe-uninitialized)
# -Wno-deprecated-declarations
) add_compile_options(
endif() "$<$<OR:$<CXX_COMPILER_ID:MSVC>,$<C_COMPILER_ID:MSVC>>:${__default_msvc_compile_options}>"
foreach(COMPILER_WARNING ${CMAKE_COMPILER_WARNINGS}) "$<$<OR:$<CXX_COMPILER_ID:GNU,Clang>,$<C_COMPILER_ID:GNU,Clang>>:${__default_compile_options}>"
add_compile_options($<$<COMPILE_LANGUAGE:${COMPILER}>:${COMPILER_WARNING}>) "$<$<OR:$<AND:$<CXX_COMPILER_ID:GNU>,$<VERSION_GREATER_EQUAL:$<CXX_COMPILER_VERSION>,7>>,$<AND:$<C_COMPILER_ID:GNU>,$<VERSION_GREATER_EQUAL:$<C_COMPILER_VERSION>,7>>>:${__default_gnu_compile_options}>"
endforeach() "$<$<OR:$<CXX_COMPILER_ID:Clang>,$<C_COMPILER_ID:Clang>>:${__default_clang_compile_options}>")
endforeach()
endif () unset(__default_msvc_compile_options)
unset(__default_compile_options)
unset(__default_gnu_compile_options)
unset(__default_clang_compile_options)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment