summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--flake.nix46
1 files changed, 46 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 00000000..712bc604
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,46 @@
+{
+ description = "Aeneas";
+
+ inputs = {
+ charon.url = "github:aeneasverif/charon";
+ flake-utils.follows = "charon/flake-utils";
+ nixpkgs.follows = "charon/nixpkgs";
+ };
+
+ outputs = { self, charon, flake-utils, nixpkgs }:
+ flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
+ let
+ pkgs = import nixpkgs { inherit system; };
+ ocamlPackages = pkgs.ocamlPackages;
+ easy_logging = ocamlPackages.buildDunePackage rec {
+ pname = "easy_logging";
+ version = "0.8.2";
+ src = pkgs.fetchFromGitHub {
+ owner = "sapristi";
+ repo = "easy_logging";
+ rev = "v${version}";
+ sha256 = "sha256-Xy6Rfef7r2K8DTok7AYa/9m3ZEV07LlUeMQSRayLBco=";
+ };
+ buildInputs = [ ocamlPackages.calendar ];
+ };
+ aeneas = ocamlPackages.buildDunePackage {
+ pname = "aeneas";
+ version = "0.1.0";
+ src = ./.;
+ buildInputs = [ easy_logging charon.packages.${system}.charon-ml ]
+ ++ (with ocamlPackages; [
+ calendar
+ core_unix
+ ppx_deriving
+ visitors
+ yojson
+ zarith
+ ]);
+ };
+ in {
+ packages = {
+ inherit aeneas;
+ default = aeneas;
+ };
+ });
+}