File: vtkCompilerWarningFlags.cmake

package info (click to toggle)
paraview 5.11.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 497,236 kB
  • sloc: cpp: 3,171,290; ansic: 1,315,072; python: 134,290; xml: 103,324; sql: 65,887; sh: 5,286; javascript: 4,901; yacc: 4,383; java: 3,977; perl: 2,363; lex: 1,909; f90: 1,255; objc: 143; makefile: 119; tcl: 59; pascal: 50; fortran: 29
file content (114 lines) | stat: -rw-r--r-- 4,418 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# This module requires CMake 3.19 features (the `CheckCompilerFlag`
# module). Just skip it for older CMake versions.
if (CMAKE_VERSION VERSION_LESS "3.19")
  return ()
endif ()

include(CheckCompilerFlag)

function (vtk_add_flag flag)
  foreach (lang IN LISTS ARGN)
    check_compiler_flag("${lang}" "${flag}" "vtk_have_compiler_flag-${lang}-${flag}")
    if (vtk_have_compiler_flag-${lang}-${flag})
      target_compile_options(vtkbuild
        INTERFACE
          "$<BUILD_INTERFACE:$<$<COMPILE_LANGUAGE:${lang}>:${flag}>>")
    endif ()
  endforeach ()
endfunction ()

option(VTK_ENABLE_EXTRA_BUILD_WARNINGS "Enable extra build warnings" OFF)
mark_as_advanced(VTK_ENABLE_EXTRA_BUILD_WARNINGS)

check_compiler_flag(C "-Weverything" vtk_have_compiler_flag_Weverything)
include(CMakeDependentOption)
cmake_dependent_option(VTK_ENABLE_EXTRA_BUILD_WARNINGS_EVERYTHING "Enable *all* warnings (except known problems)" OFF
  "VTK_ENABLE_EXTRA_BUILD_WARNINGS;vtk_have_compiler_flag_Weverything" OFF)
mark_as_advanced(VTK_ENABLE_EXTRA_BUILD_WARNINGS_EVERYTHING)

# MSVC
# Disable flags about `dll-interface` of inherited classes.
vtk_add_flag(-wd4251 CXX)
# Enable C++ stack unwinding and that C functions never throw C++
# exceptions.
vtk_add_flag(-EHsc CXX)

if (VTK_ENABLE_EXTRA_BUILD_WARNINGS_EVERYTHING)
  set(langs C CXX)
  vtk_add_flag(-Weverything ${langs})

  # Instead of enabling warnings, this mode *disables* warnings.
  vtk_add_flag(-Wno-cast-align ${langs})
  vtk_add_flag(-Wno-cast-qual ${langs})
  vtk_add_flag(-Wno-conversion ${langs})
  vtk_add_flag(-Wno-covered-switch-default ${langs})
  vtk_add_flag(-Wno-direct-ivar-access ${langs})
  vtk_add_flag(-Wno-disabled-macro-expansion ${langs})
  vtk_add_flag(-Wno-documentation ${langs})
  vtk_add_flag(-Wno-documentation-unknown-command ${langs})
  vtk_add_flag(-Wno-double-promotion ${langs})
  vtk_add_flag(-Wno-exit-time-destructors ${langs})
  vtk_add_flag(-Wno-extra-semi ${langs})
  vtk_add_flag(-Wno-extra-semi-stmt ${langs})
  vtk_add_flag(-Wno-float-equal ${langs})
  vtk_add_flag(-Wno-format-nonliteral ${langs})
  vtk_add_flag(-Wno-format-pedantic ${langs})
  vtk_add_flag(-Wno-global-constructors ${langs})
  vtk_add_flag(-Wno-long-long ${langs})
  vtk_add_flag(-Wno-missing-noreturn ${langs})
  vtk_add_flag(-Wno-missing-prototypes ${langs})
  vtk_add_flag(-Wno-missing-variable-declarations ${langs})
  vtk_add_flag(-Wno-objc-interface-ivars ${langs})
  vtk_add_flag(-Wno-padded ${langs})
  vtk_add_flag(-Wno-reserved-id-macro ${langs})
  vtk_add_flag(-Wno-shorten-64-to-32 ${langs})
  vtk_add_flag(-Wno-sign-conversion ${langs})
  vtk_add_flag(-Wno-switch-enum ${langs})
  vtk_add_flag(-Wno-undef ${langs})
  vtk_add_flag(-Wno-unused-macros ${langs})
  vtk_add_flag(-Wno-vla ${langs})
  vtk_add_flag(-Wno-vla-extension ${langs})

  set(langs CXX)
  vtk_add_flag(-Wno-c++98-compat-pedantic ${langs})
  vtk_add_flag(-Wno-inconsistent-missing-override ${langs})
  vtk_add_flag(-Wno-old-style-cast ${langs})
  vtk_add_flag(-Wno-return-std-move-in-c++11 ${langs})
  vtk_add_flag(-Wno-signed-enum-bitfield ${langs})
  vtk_add_flag(-Wno-undefined-func-template ${langs})
  vtk_add_flag(-Wno-unused-member-function ${langs})
  vtk_add_flag(-Wno-weak-template-vtables ${langs})
  vtk_add_flag(-Wno-weak-vtables ${langs})
  vtk_add_flag(-Wno-zero-as-null-pointer-constant ${langs})

  # These should be fixed at some point prior to updating VTK's standard
  # version. See #18585.
  vtk_add_flag(-Wno-deprecated-copy-dtor ${langs})
  vtk_add_flag(-Wno-deprecated-copy ${langs})
elseif (VTK_ENABLE_EXTRA_BUILD_WARNINGS)
  # C flags.
  set(langs C)

  # C++ flags.
  set(langs CXX)
  vtk_add_flag(-Winconsistent-missing-destructor-override ${langs})
  vtk_add_flag(-Wnon-virtual-dtor ${langs})
  vtk_add_flag(-Wpessimizing-move ${langs})
  vtk_add_flag(-Wrange-loop-bind-reference ${langs})
  vtk_add_flag(-Wreorder-ctor ${langs})
  vtk_add_flag(-Wunused-lambda-capture ${langs})
  vtk_add_flag(-Wunused-private-field ${langs})

  # C and C++ flags.
  set(langs C CXX)
  vtk_add_flag(-Wabsolute-value ${langs})
  vtk_add_flag(-Wsign-compare ${langs})
  vtk_add_flag(-Wunreachable-code ${langs})
  vtk_add_flag(-Wunused-but-set-variable ${langs})
  vtk_add_flag(-Wunused-function ${langs})
  vtk_add_flag(-Wunused-local-typedef ${langs})
  vtk_add_flag(-Wunused-parameter ${langs})
  vtk_add_flag(-Wunused-variable ${langs})

  # Fortran flags.
endif ()