summaryrefslogtreecommitdiff
path: root/pkgs/development/coq-modules/stdpp/default.nix
blob: c26e06a24d58ffa9bdef5dd527873e4f53e7bd02 (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
{
  lib,
  mkCoqDerivation,
  coq,
  stdlib,
  version ? null,
}:

let
  derivation = mkCoqDerivation {
    pname = "stdpp";
    inherit version;
    domain = "gitlab.mpi-sws.org";
    owner = "iris";
    defaultVersion =
      let
        case = case: out: { inherit case out; };
      in
      with lib.versions;
      lib.switch coq.coq-version [
        (case (range "8.19" "9.1") "1.12.0")
        (case (range "8.18" "8.19") "1.10.0")
        (case (range "8.16" "8.18") "1.9.0")
        (case (range "8.13" "8.17") "1.8.0")
        (case (range "8.12" "8.14") "1.6.0")
        (case (range "8.11" "8.13") "1.5.0")
        (case (range "8.8" "8.10") "1.4.0")
      ] null;
    release."1.12.0".sha256 = "sha256-2o8YMkKbXrKHwtfpkdAovxl+2NZZk958GjSSd9wcEIU=";
    release."1.11.0".sha256 = "sha256-yqnkaA5gUdZBJZ3JnvPYh11vKQRl0BAnior1yGowG7k=";
    release."1.10.0".sha256 = "sha256-bfynevIKxAltvt76lsqVxBmifFkzEhyX8lRgTKxr21I=";
    release."1.9.0".sha256 = "sha256-OXeB+XhdyzWMp5Karsz8obp0rTeMKrtG7fu/tmc9aeI=";
    release."1.8.0".sha256 = "sha256-VkIGBPHevHeHCo/Q759Q7y9WyhSF/4SMht4cOPuAXHU=";
    release."1.7.0".sha256 = "sha256:0447wbzm23f9rl8byqf6vglasfn6c1wy6cxrrwagqjwsh3i5lx8y";
    release."1.6.0".sha256 = "1l1w6srzydjg0h3f4krrfgvz455h56shyy2lbcnwdbzjkahibl7v";
    release."1.5.0".sha256 = "1ym0fy620imah89p8b6rii8clx2vmnwcrbwxl3630h24k42092nf";
    release."1.4.0".sha256 = "1m6c7ibwc99jd4cv14v3r327spnfvdf3x2mnq51f9rz99rffk68r";
    releaseRev = v: "coq-stdpp-${v}";

    propagatedBuildInputs = [ stdlib ];

    preBuild = ''
      if [[ -f coq-lint.sh ]]
      then patchShebangs coq-lint.sh
      fi
    '';

    meta = {
      description = "Extended “Standard Library” for Coq";
      license = lib.licenses.bsd3;
      maintainers = [
        lib.maintainers.vbgl
        lib.maintainers.ineol
      ];
    };
  };
in
# this is just a wrapper for rocqPackages.stdpp for Rocq >= 9.0
if coq.rocqPackages ? stdpp then
  coq.rocqPackages.stdpp.override {
    inherit version stdlib;
    inherit (coq.rocqPackages) rocq-core;
  }
else
  derivation