diff options
author | David Robillard <d@drobilla.net> | 2022-07-01 12:57:56 -0400 |
---|---|---|
committer | Eli Schwartz <eschwartz93@gmail.com> | 2022-11-27 16:50:48 -0500 |
commit | 81d7c24a59bf4a991fe57579aa11a32b32779680 (patch) | |
tree | 4f294ec479ddb90506d4ef84bdb8d4d0493641d3 /unittests/allplatformstests.py | |
parent | 9751c1fe61c34ea1a9e6a47cae251574586faff5 (diff) | |
download | meson-81d7c24a59bf4a991fe57579aa11a32b32779680.zip meson-81d7c24a59bf4a991fe57579aa11a32b32779680.tar.gz meson-81d7c24a59bf4a991fe57579aa11a32b32779680.tar.bz2 |
Add warning_level=everything
Adds a new maximum warning level that is roughly equivalent to "all warnings".
This adds a way to use `/Wall` with MSVC (without the previous broken warning),
`-Weverything` with clang, and almost all general warnings in GCC with
strictness roughly equivalent to clang's `-Weverything`.
The GCC case must be implemented by meson since GCC doesn't provide a similar
option. To avoid maintenance headaches for meson, this warning level is
defined objectively: all warnings are included except those that require
specific values or are specific to particular language revisions. This warning
level is mainly intended for new code, and it is expected (nearly guaranteed)
that projects will need to add some suppressions to build cleanly with it.
More commonly, it's just a handy way to occasionally take a look at what
warnings are present with some compiler, in case anything interesting shows up
you might want to enable in general.
Since the warnings enabled at this level are inherently unstable with respect
to compiler versions, it is intended for use by developers and not to be set as
the default.
Diffstat (limited to 'unittests/allplatformstests.py')
-rw-r--r-- | unittests/allplatformstests.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/unittests/allplatformstests.py b/unittests/allplatformstests.py index 6eced8e..8b78590 100644 --- a/unittests/allplatformstests.py +++ b/unittests/allplatformstests.py @@ -2279,6 +2279,9 @@ class AllPlatformTests(BasePlatformTests): self.setconf('--warnlevel=3') obj = mesonbuild.coredata.load(self.builddir) self.assertEqual(obj.options[OptionKey('warning_level')].value, '3') + self.setconf('--warnlevel=everything') + obj = mesonbuild.coredata.load(self.builddir) + self.assertEqual(obj.options[OptionKey('warning_level')].value, 'everything') self.wipe() # But when using -D syntax, it should be 'warning_level' @@ -2288,6 +2291,9 @@ class AllPlatformTests(BasePlatformTests): self.setconf('-Dwarning_level=3') obj = mesonbuild.coredata.load(self.builddir) self.assertEqual(obj.options[OptionKey('warning_level')].value, '3') + self.setconf('-Dwarning_level=everything') + obj = mesonbuild.coredata.load(self.builddir) + self.assertEqual(obj.options[OptionKey('warning_level')].value, 'everything') self.wipe() # Mixing --option and -Doption is forbidden |