WarningFlags.cmake (2750B)
1 add_library(warning_flags INTERFACE) 2 3 if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")) 4 target_compile_options(warning_flags INTERFACE 5 /W4 # base warning level 6 /wd4458 # declaration hides class member (from Foley's GUI Magic) 7 /wd4505 # since VS2019 doesn't handle [[ maybe_unused ]] for static functions (RTNeural::debug_print) 8 /wd4244 # for XSIMD 9 ) 10 elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")) 11 target_compile_options(warning_flags INTERFACE 12 -Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized 13 -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion 14 -Wconditional-uninitialized -Woverloaded-virtual -Wreorder 15 -Wconstant-conversion -Wsign-conversion -Wunused-private-field 16 -Wbool-conversion -Wno-extra-semi -Wunreachable-code 17 -Wzero-as-null-pointer-constant -Wcast-align 18 -Wno-inconsistent-missing-destructor-override -Wshift-sign-overflow 19 -Wnullable-to-nonnull-conversion -Wno-missing-field-initializers 20 -Wno-ignored-qualifiers -Wpedantic -Wno-pessimizing-move 21 # These lines suppress some warnings from Foley's GUI Magic and RTNeural. 22 # Comment them out to be more strict. 23 -Wno-shadow-field-in-constructor -Wno-shadow-field -Wno-sign-conversion 24 -Wno-float-conversion -Wno-implicit-float-conversion -Wno-switch-enum 25 -Wno-macro-redefined 26 # For XSIMD 27 -Wno-cast-align -Wno-shadow -Wno-implicit-int-conversion 28 -Wno-zero-as-null-pointer-constant 29 # For aligned allocation on ARM 30 -faligned-allocation 31 ) 32 elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") 33 target_compile_options(warning_flags INTERFACE 34 -Wall -Wextra -Wstrict-aliasing -Wuninitialized -Wunused-parameter 35 -Wsign-compare -Woverloaded-virtual -Wreorder -Wunreachable-code 36 -Wzero-as-null-pointer-constant -Wcast-align -Wno-implicit-fallthrough 37 -Wno-maybe-uninitialized -Wno-missing-field-initializers -Wno-pedantic 38 -Wno-ignored-qualifiers -Wno-unused-function -Wno-pessimizing-move 39 # These lines suppress some warnings from Foley's GUI Magic and RTNeural. 40 # Comment them out to be more strict. 41 -Wno-sign-conversion -Wno-switch-enum -Wno-overloaded-virtual 42 -Wno-macro-redefined 43 # For XSIMD 44 -Wno-zero-as-null-pointer-constant 45 # From LV2 Wrapper 46 -Wno-parentheses -Wno-deprecated-declarations -Wno-redundant-decls 47 ) 48 49 if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "7.0.0") 50 target_compile_options(warning_flags INTERFACE "-Wno-strict-overflow") 51 endif() 52 endif()