AnalogTapeModel

Physical modelling signal processing for analog tape recording
Log | Files | Refs | Submodules | README | LICENSE

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()