-
Notifications
You must be signed in to change notification settings - Fork 2
/
flake.nix
53 lines (47 loc) · 1.2 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs";
flake-utils.url = "github:numtide/flake-utils";
apalache-release = {
url = "https://github.com/informalsystems/apalache/releases/download/v0.44.11/apalache.zip";
flake = false;
type = "tarball";
};
};
outputs = {self, nixpkgs, flake-utils, ... }@inputs:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs {
inherit system;
};
apalache = pkgs.stdenv.mkDerivation {
name = "apalache";
src = inputs.apalache-release;
buildInputs = [pkgs.makeWrapper];
installPhase = ''
mkdir -p $out
cp -r lib $out/lib
mkdir -p $out/bin
cat > $out/bin/apalache-mc <<- EOM
#!${pkgs.bash}/bin/bash
exec ${pkgs.jre}/bin/java -Xmx100G -jar "$out/lib/apalache.jar" "\$@"
EOM
chmod +x $out/bin/apalache-mc
'';
postFixup = ''
wrapProgram $out/bin/apalache-mc \
--set PATH ${pkgs.lib.makeBinPath [
pkgs.gcc12
pkgs.z3
]}
'';
};
in {
devShell = pkgs.mkShell {
buildInputs = [
pkgs.tlaplus
apalache
];
};
});
}