[libvirt PATCH] meson: add -Wall and -Wextra explicitly for buildtype=plain

Daniel P. Berrangé berrange at redhat.com
Wed Sep 2 08:08:17 UTC 2020


On Tue, Sep 01, 2020 at 04:08:04PM +0200, Pavel Hrdina wrote:
> If someone runs `meson setup --buildtype plain` meson ignores
> warning_level=2 that is in our meson.build file. The implication is
> that Meson will not automatically add -Wall which enables -Wformat.
> 
> This breaks building libvirt from git with the buildtype set to plain.
> 
> There is an issue reported [1] to not ignore warning_level silently
> and the change to ignore it was done by upstream commit [2].
> 
> [1] <https://github.com/mesonbuild/meson/issues/7399>
> [2] <https://github.com/mesonbuild/meson/commit/8ee1c9a07a3a35e3ed262fbc358fd86c257a966e>
> 
> Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> ---
>  meson.build | 19 +++++++++++++++----
>  1 file changed, 15 insertions(+), 4 deletions(-)
> 
> diff --git a/meson.build b/meson.build
> index e193166a9b..f38785eeae 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -503,10 +503,6 @@ cc_flags_disabled = [
>    # In meson this is specified using 'c_std=gnu99' in project() function.
>    '-std=gnu99',
>  
> -  # In meson this is specified using 'warning_level=2' in project() function.
> -  '-Wall',
> -  '-Wextra',
> -
>    # don't care about C++ compiler compat
>    '-Wc++-compat',
>    '-Wabi',
> @@ -573,6 +569,21 @@ cc_flags_disabled = [
>    '-Wsuggest-attribute=malloc',
>  ]
>  
> +# In meson this is specified using 'warning_level=2' in project() function.
> +# However, meson silently ignores 'warning_level' option with 'buildtype=plain'
> +# so we have to enable them explicitly.
> +if get_option('buildtype') == 'plain'
> +  cc_flags += [
> +    '-Wall',
> +    '-Wextra',
> +  ]
> +else
> +  cc_flags_disabled += [
> +    '-Wall',
> +    '-Wextra',
> +  ]
> +endif

I'd really just simplify this to remove the conditional and always
add -Wall/-Wextra, and ignore the warning meson will print.

I tend to think they should provide a way to squelch that warning,
as it is too presumtous that apps will only ever need to set the
basic warning flags, instead of warning to set many like libvirt
does.

Or maybe, meson can be enhanced to allow setting many warnings
like libvirt uses 

> +
>  foreach flag : cc_flags_disabled
>    if cc_flags.contains(flag)
>      error('@0@ is disabled but listed in cc_flags'.format(flag))
> -- 
> 2.26.2
> 

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list