aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJade Lovelace <lix@jade.fyi>2024-07-23 22:53:56 +0200
committerJade Lovelace <lix@jade.fyi>2024-07-31 14:13:39 -0700
commitb5c6ce7a537d91ee22d6876ba0166259da2ac3c0 (patch)
tree9b12cbb1933db0fbe5c099c94d5b3cfc62c369b0
parente51263057f21e77602481d6a6d826ff8cc0c1db0 (diff)
Add -Werror CI job
We should cause CLs that introduce compiler warnings to fail CI. Sadly this will only cover Clang, but it will cover Clang for free, so it's truly impossible to say if it's bad or not. Change-Id: I45ca20d77251af9671d5cbe0d29cb08c5f1d03c2
-rw-r--r--flake.nix4
-rw-r--r--package.nix3
2 files changed, 7 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix
index 9a3087c4b..440320afa 100644
--- a/flake.nix
+++ b/flake.nix
@@ -283,6 +283,10 @@
"address"
"undefined"
];
+ # it is very hard to make *every* CI build use this option such
+ # that we don't wind up building Lix twice, so we do it here where
+ # we are already doing so.
+ werror = true;
};
# Make sure that nix-env still produces the exact same result
diff --git a/package.nix b/package.nix
index 0807ec1de..9f983f66b 100644
--- a/package.nix
+++ b/package.nix
@@ -60,6 +60,8 @@
# List of Meson sanitize options. Accepts values of b_sanitize, e.g.
# "address", "undefined", "thread".
sanitize ? null,
+ # Turn compiler warnings into errors.
+ werror ? false,
# Not a real argument, just the only way to approximate let-binding some
# stuff for argument defaults.
@@ -191,6 +193,7 @@ stdenv.mkDerivation (finalAttrs: {
(lib.mesonEnable "internal-api-docs" internalApiDocs)
(lib.mesonBool "enable-tests" finalAttrs.finalPackage.doCheck)
(lib.mesonBool "enable-docs" canRunInstalled)
+ (lib.mesonBool "werror" werror)
]
++ lib.optional (hostPlatform != buildPlatform) "--cross-file=${mesonCrossFile}"
++ sanitizeOpts;