aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-07-01 12:57:56 -0400
committerEli Schwartz <eschwartz93@gmail.com>2022-11-27 16:50:48 -0500
commit81d7c24a59bf4a991fe57579aa11a32b32779680 (patch)
tree4f294ec479ddb90506d4ef84bdb8d4d0493641d3 /docs
parent9751c1fe61c34ea1a9e6a47cae251574586faff5 (diff)
downloadmeson-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.md2
-rw-r--r--docs/markdown/Configuring-a-build-directory.md2
-rw-r--r--docs/markdown/snippets/warning_level_everything.md5
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.