meson: honour meson warning_level option
Meson defines a warning_level option which has the following behaviour with C code 0: no warning flags 1: -Wall 2: -Wall -Wextra 3: -Wall -Wextra -Wpedantic Currently we add our extra warning flags unconditionally if the compiler supports them, regardless of the meson warning_level setting. This has effectively nullified the warning_level setting in meson, and also results in meson printing these messages: meson.build:498: WARNING: Consider using the built-in warning_level option instead of using "-Wall". meson.build:498: WARNING: Consider using the built-in warning_level option instead of using "-Wextra". Semantically we can think of our huge list of flags as being an "extra" set of warnings, and thus we ought to only add them when meson would itself use -Wextra. aka warning_level == 2 or 3. In practice libvirt code can't be built with -Wpedantic so we can ignore meson warning_level 3, and only add our flags when warning_level==2. In doing this change, we no longer have to check -Wall/-Wextra ourselves as we can assume meson already set them. -W is an alias of -Wextra so it is removed too. Reviewed-by: Pavel Hrdina <phrdina@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
8f28944fd5
commit
a9461d456c
@ -229,12 +229,10 @@ cc_flags += [
|
||||
'-fexceptions',
|
||||
'-fipa-pure-const',
|
||||
'-fno-common',
|
||||
'-W',
|
||||
'-Wabsolute-value',
|
||||
'-Waddress',
|
||||
'-Waddress-of-packed-member',
|
||||
'-Waggressive-loop-optimizations',
|
||||
'-Wall',
|
||||
'-Walloc-size-larger-than=@0@'.format(alloc_max.stdout().strip()),
|
||||
'-Warray-bounds=2',
|
||||
'-Wattribute-alias=2',
|
||||
@ -268,7 +266,6 @@ cc_flags += [
|
||||
'-Wempty-body',
|
||||
'-Wendif-labels',
|
||||
'-Wexpansion-to-defined',
|
||||
'-Wextra',
|
||||
'-Wformat-contains-nul',
|
||||
'-Wformat-extra-args',
|
||||
# -Wformat=2 implies -Wformat-nonliteral so we need to manually exclude it
|
||||
@ -398,6 +395,8 @@ cc_flags += [
|
||||
'-Wwrite-strings',
|
||||
]
|
||||
|
||||
supported_cc_flags = []
|
||||
if get_option('warning_level') == '2'
|
||||
supported_cc_flags = cc.get_supported_arguments(cc_flags)
|
||||
|
||||
# on aarch64 error: -fstack-protector not supported for this target
|
||||
@ -463,6 +462,7 @@ if not cc.compiles(w_unused_function_code, args: w_unused_function_args)
|
||||
supported_cc_flags += ['-Wno-unused-function']
|
||||
endif
|
||||
|
||||
endif
|
||||
add_project_arguments(supported_cc_flags, language: 'c')
|
||||
|
||||
if cc.has_argument('-Wsuggest-attribute=format')
|
||||
|
Loading…
x
Reference in New Issue
Block a user