From b5c6ce7a537d91ee22d6876ba0166259da2ac3c0 Mon Sep 17 00:00:00 2001 From: Jade Lovelace Date: Tue, 23 Jul 2024 22:53:56 +0200 Subject: [PATCH] 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 --- flake.nix | 4 ++++ package.nix | 3 +++ 2 files changed, 7 insertions(+) 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;