audiobookshelf: 2.18.1 -> 2.19.0 (#378967)
[NixPkgs.git] / pkgs / by-name / al / alt-ergo / package.nix
blob8aed8f4e701c8e0894e8483041ce95af8473b87e
2   darwin,
3   fetchurl,
4   lib,
5   ocamlPackages,
6   stdenv,
7 }:
9 let
10   pname = "alt-ergo";
11   version = "2.6.0";
13   src = fetchurl {
14     url = "https://github.com/OCamlPro/alt-ergo/releases/download/v${version}/alt-ergo-${version}.tbz";
15     hash = "sha256-EmkxGvJSeKRmiSuoeMyIi6WfF39T3QPxKixiOwP8834=";
16   };
19 let
20   alt-ergo-lib = ocamlPackages.buildDunePackage rec {
21     pname = "alt-ergo-lib";
22     inherit version src;
23     buildInputs = with ocamlPackages; [ ppx_blob ];
24     propagatedBuildInputs = with ocamlPackages; [
25       camlzip
26       dolmen_loop
27       dune-build-info
28       fmt
29       ocplib-simplex
30       ppx_deriving
31       seq
32       stdlib-shims
33       zarith
34     ];
35   };
38 let
39   alt-ergo-parsers = ocamlPackages.buildDunePackage rec {
40     pname = "alt-ergo-parsers";
41     inherit version src;
42     nativeBuildInputs = [ ocamlPackages.menhir ];
43     propagatedBuildInputs = [ alt-ergo-lib ] ++ (with ocamlPackages; [ psmt2-frontend ]);
44   };
47 ocamlPackages.buildDunePackage {
49   inherit pname version src;
51   nativeBuildInputs = [
52     ocamlPackages.menhir
53   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.sigtool ];
54   propagatedBuildInputs =
55     [ alt-ergo-parsers ]
56     ++ (with ocamlPackages; [
57       cmdliner
58       dune-site
59       ppxlib
60     ]);
62   outputs = [
63     "bin"
64     "out"
65   ];
67   installPhase = ''
68     runHook preInstall
69     dune install --prefix $bin ${pname}
70     mkdir -p $out/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib
71     mv $bin/lib/alt-ergo $out/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/
72     runHook postInstall
73   '';
75   meta = {
76     description = "High-performance theorem prover and SMT solver";
77     homepage = "https://alt-ergo.ocamlpro.com/";
78     license = lib.licenses.ocamlpro_nc;
79     maintainers = [ lib.maintainers.thoughtpolice ];
80   };