-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflake.nix
82 lines (69 loc) · 2.24 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
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
{
description = "A verified verilog equivalence checker (minimum viable product)";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
coq = pkgs.coq_8_19;
coqPackages = pkgs.coqPackages_8_19;
deps = [
coq
coqPackages.ExtLib
coqPackages.equations
coqPackages.smtcoq
coq.ocaml
coq.ocamlPackages.findlib
coq.ocamlPackages.ocaml-lsp
coq.ocamlPackages.dune_3
coq.ocamlPackages.utop
coq.ocamlPackages.ocamlformat
coq.ocamlPackages.menhir
coq.ocamlPackages.ppx_deriving
coq.ocamlPackages.ppxlib
coq.ocamlPackages.yojson
pkgs.sv-lang
pkgs.z3
];
dev-deps = [
pkgs.abc-verifier
pkgs.bitwuzla
pkgs.cvc4
pkgs.cvc5
pkgs.yosys
pkgs.iverilog
(pkgs.python3.withPackages (ps: with ps; [ networkx pygraphviz ]))
];
in {
devShells.default = pkgs.mkShell {
packages = deps ++ dev-deps;
};
packages.default = pkgs.stdenv.mkDerivation {
pname = "vera";
version = "0.1.0"; # Replace with your actual version
src = self; # This assumes the source is in the current directory
buildInputs = deps ++ [ pkgs.makeWrapper ];
buildPhase = ''
dune build
'';
installPhase = ''
mkdir -p $out/bin
cp _build/default/bin/main.exe $out/bin/vera
# Wrap the binary to add slang to PATH
wrapProgram $out/bin/vera \
--prefix PATH : ${pkgs.sv-lang}/bin \
--prefix PATH : ${pkgs.z3}/bin
'';
meta = with pkgs.lib; {
description = "Verified Verilog Equivalence Checker";
homepage = ""; # Add your project homepage if available
license = licenses.mit; # Replace with your actual license
platforms = platforms.unix;
};
};
}
);
}