nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 buildDunePackage,
5 ocaml,
6 fetchFromGitHub,
7 menhir,
8 bos,
9 cmdliner,
10 dolmen_model,
11 dolmen_type,
12 dune-build-info,
13 fpath,
14 hc,
15 menhirLib,
16 mtime,
17 # fix eval on legacy ocaml versions
18 ocaml_intrinsics ? null,
19 prelude,
20 scfg,
21 yojson,
22 z3,
23 zarith,
24 mdx,
25 ounit2,
26}:
27
28buildDunePackage (finalAttrs: {
29 pname = "smtml";
30 version = "0.20.0";
31
32 src = fetchFromGitHub {
33 owner = "formalsec";
34 repo = "smtml";
35 tag = "v${finalAttrs.version}";
36 hash = "sha256-VnkF+bZXeqaj9LSpyzqH5AM9EQsrW4Rlj5kvyTfYTKE=";
37 };
38
39 minimalOCamlVersion = "4.14";
40
41 nativeBuildInputs = [
42 menhir
43 ];
44
45 buildInputs = [
46 dune-build-info
47 ];
48
49 propagatedBuildInputs = [
50 bos
51 cmdliner
52 dolmen_model
53 dolmen_type
54 fpath
55 hc
56 menhirLib
57 mtime
58 ocaml_intrinsics
59 prelude
60 scfg
61 yojson
62 z3
63 zarith
64 ];
65
66 checkInputs = [
67 mdx
68 ounit2
69 ];
70
71 nativeCheckInputs = [
72 mdx.bin
73 ];
74
75 doCheck =
76 !(
77 lib.versions.majorMinor ocaml.version == "5.0"
78 || lib.versions.majorMinor ocaml.version == "5.4"
79 || stdenv.hostPlatform.isDarwin
80 );
81
82 meta = {
83 description = "SMT solver frontend for OCaml";
84 homepage = "https://formalsec.github.io/smtml/smtml/";
85 downloadPage = "https://github.com/formalsec/smtml";
86 changelog = "https://github.com/formalsec/smtml/releases/tag/v${finalAttrs.version}";
87 license = lib.licenses.mit;
88 teams = with lib.teams; [ ngi ];
89 maintainers = with lib.maintainers; [
90 ethancedwards8
91 redianthus
92 ];
93 };
94})