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 /docs | |
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 'docs')
-rw-r--r-- | docs/markdown/Builtin-options.md | 2 | ||||
-rw-r--r-- | docs/markdown/Configuring-a-build-directory.md | 2 | ||||
-rw-r--r-- | docs/markdown/snippets/warning_level_everything.md | 5 |
3 files changed, 7 insertions, 2 deletions
diff --git a/docs/markdown/Builtin-options.md b/docs/markdown/Builtin-options.md index 22627f4..4c43f09 100644 --- a/docs/markdown/Builtin-options.md +++ b/docs/markdown/Builtin-options.md @@ -85,7 +85,7 @@ machine](#specifying-options-per-machine) section for details. | strip | false | Strip targets on install | no | no | | unity {on, off, subprojects} | off | Unity build | no | no | | unity_size {>=2} | 4 | Unity file block size | no | no | -| warning_level {0, 1, 2, 3} | 1 | Set the warning level. From 0 = none to 3 = highest | no | yes | +| warning_level {0, 1, 2, 3, everything} | 1 | Set the warning level. From 0 = none to everything = highest | no | yes | | werror | false | Treat warnings as errors | no | yes | | wrap_mode {default, nofallback,<br>nodownload, forcefallback, nopromote} | default | Wrap mode to use | no | no | | force_fallback_for | [] | Force fallback for those dependencies | no | no | diff --git a/docs/markdown/Configuring-a-build-directory.md b/docs/markdown/Configuring-a-build-directory.md index 2012b37..6b9bb40 100644 --- a/docs/markdown/Configuring-a-build-directory.md +++ b/docs/markdown/Configuring-a-build-directory.md @@ -34,7 +34,7 @@ a sample output for a simple project. prefer_static false [true, false] Whether to try static linking before shared linking strip false [true, false] Strip targets on install unity off [on, off, subprojects] Unity build - warning_level 1 [0, 1, 2, 3] Compiler warning level to use + warning_level 1 [0, 1, 2, 3, everything] Compiler warning level to use werror false [true, false] Treat warnings as errors Backend options: diff --git a/docs/markdown/snippets/warning_level_everything.md b/docs/markdown/snippets/warning_level_everything.md new file mode 100644 index 0000000..5558cf5 --- /dev/null +++ b/docs/markdown/snippets/warning_level_everything.md @@ -0,0 +1,5 @@ +## `warning-level=everything` option + +The new `everything` value for the built-in `warning_level` enables roughly all applicable compiler warnings. +For clang and MSVC, this simply enables `-Weverything` or `/Wall`, respectively. +For GCC, meson enables warnings approximately equivalent to `-Weverything` from clang. |