-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathflake.nix
More file actions
83 lines (75 loc) · 2.61 KB
/
flake.nix
File metadata and controls
83 lines (75 loc) · 2.61 KB
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
nixpkgs-ghc.url = "github:NixOS/nixpkgs/79b3d4bcae8c7007c9fd51c279a8a67acfa73a2a";
nixpkgs-cabal.url = "github:NixOS/nixpkgs/7cf5ccf1cdb2ba5f08f0ac29fc3d04b0b59a07e4";
nixpkgs-z3-4-12-5.url = "github:NixOS/nixpkgs/c792c60b8a97daa7efe41a6e4954497ae410e0c1";
nixpkgs-z3-4-14-1.url = "github:NixOS/nixpkgs/3e2cf88148e732abc1d259286123e06a9d8c964a";
};
outputs = {
self,
nixpkgs,
flake-utils,
nixpkgs-ghc,
nixpkgs-cabal,
nixpkgs-z3-4-12-5,
nixpkgs-z3-4-14-1,
...
} @ inputs:
inputs.flake-utils.lib.eachDefaultSystem (system:
let
name = "owl-flake";
src = ./.;
pkgs = nixpkgs.legacyPackages.${system};
pkgs-ghc = nixpkgs-ghc.legacyPackages.${system};
pkgs-cabal = nixpkgs-cabal.legacyPackages.${system};
pkgs-z3-4-12-5 = nixpkgs-z3-4-12-5.legacyPackages.${system};
pkgs-z3-4-14-1 = nixpkgs-z3-4-14-1.legacyPackages.${system};
z3-binary = pkgs.stdenv.mkDerivation {
pname = "z3-bin";
version = "4.12.1";
src = pkgs.fetchzip {
url = "https://github.com/Z3Prover/z3/releases/download/z3-4.12.1/z3-4.12.1-x64-glibc-2.35.zip";
sha256 = "0hlfz8d7n1q78c015l8ygf91674wx5xjgg1b52sbh00armdbfxw4";
};
# need autoPatchelfHook to fix the binary's dynamic linking
nativeBuildInputs = [ pkgs.autoPatchelfHook ];
buildInputs = [ pkgs.stdenv.cc.cc.lib ];
installPhase = ''
mkdir -p $out
cp -r * $out/
chmod +x $out/bin/z3
chmod +x $out/bin/*.so 2>/dev/null || true
'';
};
in {
inherit name src;
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
# z3-binary
# z3
# haskell toolchain
# ghc
# cabal-installs
# c compiler and libraries (for z3)
stdenv.cc.cc
glib
zlib
] ++ [
pkgs-ghc.ghc
pkgs-cabal.cabal-install
# pkgs-z3-4-12-5.z3
pkgs-z3-4-14-1.z3
];
shellHook = ''
echo "owl flake indeed"
echo "z3 available at: $(which z3)"
echo "z3 version: $(z3 --version)"
echo "ghc version: $(ghc --version)"
echo "cabal version: $(cabal --version | head -n1)"
'';
};
}
);
}