summaryrefslogtreecommitdiff
path: root/pkgs/development/coq-modules/itauto/default.nix
blob: da5b40c2923ae7248f343aefee1cdf909e3bc267 (plain)
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
{
  lib,
  callPackage,
  mkCoqDerivation,
  coq,
  stdlib,
  dune,
  version ? null,
}:

(mkCoqDerivation {
  pname = "itauto";
  owner = "fbesson";
  domain = "gitlab.inria.fr";

  release."8.20.0".sha256 = "sha256-LYKGbI3O6yw6CiTJNUGL11PT4q4o+gJK1kQgKQL0/Hk=";
  release."8.19.0".sha256 = "sha256-xKWCF4dYvvlJUVGCZcR2RLCG55vlGzu2GN30MeRvVD4=";
  release."8.18.0".sha256 = "sha256-4mDDnKTeYrf27uRMkydQxO7j2tfgTFXOREW474d40eo=";
  release."8.17.0".sha256 = "sha256-fgdnKchNT1Hyrq14gU8KWYnlSfg3qlsSw5A4+RoA26w=";
  release."8.16.0".sha256 = "sha256-4zAUYGlw/pBcLPv2GroIduIlvbfi1+Vy+TdY8KLCqO4=";
  release."8.15.0".sha256 = "sha256:10qpv4nx1p0wm9sas47yzsg9z22dhvizszfa21yff08a8fr0igya";
  release."8.14.0".sha256 = "sha256:1k6pqhv4dwpkwg81f2rlfg40wh070ks1gy9r0ravm2zhsbxqcfc9";
  release."8.13+no".sha256 = "sha256-gXoxtLcHPoyjJkt7WqvzfCMCQlh6kL2KtCGe3N6RC/A=";
  inherit version;
  defaultVersion =
    let
      case = case: out: { inherit case out; };
    in
    with lib.versions;
    lib.switch coq.coq-version [
      (case (isEq "8.20") "8.20.0")
      (case (isEq "8.19") "8.19.0")
      (case (isEq "8.18") "8.18.0")
      (case (isEq "8.17") "8.17.0")
      (case (isEq "8.16") "8.16.0")
      (case (isEq "8.15") "8.15.0")
      (case (isEq "8.14") "8.14.0")
      (case (isEq "8.13") "8.13+no")
    ] null;

  mlPlugin = true;
  nativeBuildInputs = (with coq.ocamlPackages; [ ocamlbuild ]);
  enableParallelBuilding = false;

  passthru.tests.suite = callPackage ./test.nix { };

  propagatedBuildInputs = [ stdlib ];

  meta = {
    description = "Reflexive SAT solver parameterised by a leaf tactic and Nelson-Oppen support";
    maintainers = with lib.maintainers; [ siraben ];
    license = lib.licenses.gpl3Plus;
  };
}).overrideAttrs
  (
    o:
    lib.optionalAttrs (o.version == "dev" || lib.versionAtLeast o.version "8.16") {
      propagatedBuildInputs = o.propagatedBuildInputs ++ [ coq.ocamlPackages.findlib ];
    }
    // lib.optionalAttrs (o.version == "dev" || lib.versionAtLeast o.version "8.18") {
      nativeBuildInputs = with coq.ocamlPackages; [
        ocaml
        findlib
        dune
      ];
    }
  )