1{
2 lib,
3 stdenv,
4 buildDunePackage,
5 ocaml,
6 fetchFromGitHub,
7 menhir,
8 bos,
9 cmdliner,
10 dolmen_type,
11 fpath,
12 hc,
13 menhirLib,
14 # fix eval on legacy ocaml versions
15 ocaml_intrinsics ? null,
16 patricia-tree,
17 prelude,
18 scfg,
19 yojson,
20 z3,
21 zarith,
22 mdx,
23 ounit2,
24}:
25
26buildDunePackage rec {
27 pname = "smtml";
28 version = "0.8.0";
29
30 src = fetchFromGitHub {
31 owner = "formalsec";
32 repo = "smtml";
33 tag = "v${version}";
34 hash = "sha256-gmYyVUkwXBqGKGhp6Pqdf2PJafUJ1hF96WxOLq1h2f8=";
35 };
36
37 nativeBuildInputs = [
38 menhir
39 ];
40
41 propagatedBuildInputs = [
42 bos
43 cmdliner
44 dolmen_type
45 fpath
46 hc
47 menhirLib
48 ocaml_intrinsics
49 patricia-tree
50 prelude
51 scfg
52 yojson
53 z3
54 zarith
55 ];
56
57 checkInputs = [
58 mdx
59 ounit2
60 ];
61
62 nativeCheckInputs = [
63 mdx.bin
64 ];
65
66 doCheck = !(lib.versions.majorMinor ocaml.version == "5.0" || stdenv.hostPlatform.isDarwin);
67
68 meta = {
69 description = "SMT solver frontend for OCaml";
70 homepage = "https://formalsec.github.io/smtml/smtml/";
71 downloadPage = "https://github.com/formalsec/smtml";
72 changelog = "https://github.com/formalsec/smtml/releases/tag/v${version}";
73 license = lib.licenses.mit;
74 maintainers = [ lib.maintainers.ethancedwards8 ];
75 };
76}