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/8ee1c9a07a3a35e3ed262fbc358fd8...
Signed-off-by: Pavel Hrdina <phrdina(a)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
+
foreach flag : cc_flags_disabled
if cc_flags.contains(flag)
error('@0@ is disabled but listed in cc_flags'.format(flag))
--
2.26.2