summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
authorSon HO2024-04-23 16:37:54 +0200
committerGitHub2024-04-23 16:37:54 +0200
commitf3007820a21d11721507f5054b30bf5ae99a7b95 (patch)
tree8c84f338a6b86dd146500e18708594a0e449c880 /flake.nix
parent008596885544999b159244528c5a3b2a17151721 (diff)
parent10e5ca4c48c1d5729ee877612b7d95dfe2636159 (diff)
Merge pull request #154 from AeneasVerif/ci-fmt
ci: check code formatting and forbid warnings
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix21
1 files changed, 20 insertions, 1 deletions
diff --git a/flake.nix b/flake.nix
index f6a5f04e..f77bd23b 100644
--- a/flake.nix
+++ b/flake.nix
@@ -30,11 +30,29 @@
};
buildInputs = [ ocamlPackages.calendar ];
};
+
+ aeneas-check-tidiness = pkgs.stdenv.mkDerivation {
+ name = "aeneas-check-tidiness";
+ src = ./compiler;
+ buildInputs = [
+ ocamlPackages.dune_3
+ ocamlPackages.ocaml
+ ocamlPackages.ocamlformat
+ ];
+ buildPhase = ''
+ if ! dune build @fmt; then
+ echo 'ERROR: Code is not formatted. Run `make format` to format the project files'.
+ exit 1
+ fi
+ '';
+ installPhase = "touch $out";
+ };
aeneas = ocamlPackages.buildDunePackage {
pname = "aeneas";
version = "0.1.0";
duneVersion = "3";
src = ./compiler;
+ OCAMLPARAM="_,warn-error=+A"; # Turn all warnings into errors.
propagatedBuildInputs = [
easy_logging charon.packages.${system}.charon-ml
] ++ (with ocamlPackages; [
@@ -167,6 +185,7 @@
inherit aeneas aeneas-tests
aeneas-verify-fstar
aeneas-verify-coq
- aeneas-verify-hol4; };
+ aeneas-verify-hol4
+ aeneas-check-tidiness; };
});
}