nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 mkCoqDerivation,
4 coq,
5 stdlib,
6 version ? null,
7}:
8
9(mkCoqDerivation {
10 pname = "equations";
11 owner = "mattam82";
12 repo = "Coq-Equations";
13 opam-name = "rocq-equations";
14 inherit version;
15 defaultVersion =
16 let
17 case = case: out: { inherit case out; };
18 in
19 lib.switch coq.coq-version [
20 (case "9.1" "1.3.1+9.1")
21 (case "9.0" "1.3.1+9.0")
22 (case "8.20" "1.3.1+8.20")
23 (case "8.19" "1.3+8.19")
24 (case "8.18" "1.3+8.18")
25 (case "8.17" "1.3+8.17")
26 (case "8.16" "1.3+8.16")
27 (case "8.15" "1.3+8.15")
28 (case "8.14" "1.3+8.14")
29 (case "8.13" "1.3+8.13")
30 (case "8.12" "1.2.4+coq8.12")
31 (case "8.11" "1.2.4+coq8.11")
32 (case "8.10" "1.2.1+coq8.10-2")
33 (case "8.9" "1.2.1+coq8.9")
34 (case "8.8" "1.2+coq8.8")
35 (case "8.7" "1.0+coq8.7")
36 (case "8.6" "1.0+coq8.6")
37 ] null;
38
39 release."1.0+coq8.6".version = "1.0";
40 release."1.0+coq8.6".rev = "v1.0";
41 release."1.0+coq8.6".sha256 = "19ylw9v9g35607w4hm86j7mmkghh07hmkc1ls5bqlz3dizh5q4pj";
42 release."1.0+coq8.7".version = "1.0";
43 release."1.0+coq8.7".rev = "v1.0-8.7";
44 release."1.0+coq8.7".sha256 = "1bavg4zl1xn0jqrdq8iw7xqzdvdf39ligj9saz5m9c507zri952h";
45 release."1.2+coq8.8".version = "1.2";
46 release."1.2+coq8.8".rev = "v1.2-8.8";
47 release."1.2+coq8.8".sha256 = "06452fyzalz7zcjjp73qb7d6xvmqb6skljkivf8pfm55fsc8s7kx";
48 release."1.2.1+coq8.9".version = "1.2.1";
49 release."1.2.1+coq8.9".rev = "v1.2.1-8.9";
50 release."1.2.1+coq8.9".sha256 = "0d8ddj6nc6p0k25cd8fs17cq427zhzbc3v9pk2wd2fnvk70nlfij";
51 release."1.2.1+coq8.10-2".version = "1.2.1";
52 release."1.2.1+coq8.10-2".rev = "v1.2.1-8.10-2";
53 release."1.2.1+coq8.10-2".sha256 = "0j3z4l5nrbyi9zbbyqkc6kassjanwld2188mwmrbqspaypm2ys68";
54 release."1.2.3+coq8.11".version = "1.2.3";
55 release."1.2.3+coq8.11".rev = "v1.2.3-8.11";
56 release."1.2.3+coq8.11".sha256 = "1srxz1rws8jsh7402g2x2vcqgjbbsr64dxxj5d2zs48pmhb20csf";
57 release."1.2.3+coq8.12".version = "1.2.3";
58 release."1.2.3+coq8.12".rev = "v1.2.3-8.12";
59 release."1.2.3+coq8.12".sha256 = "1y0jkvzyz5ssv5vby41p1i8zs7nsdc8g3pzyq73ih9jz8h252643";
60 release."1.2.4+coq8.11".rev = "v1.2.4-8.11";
61 release."1.2.4+coq8.11".sha256 = "01fihyav8jbjinycgjc16adpa0zy5hcav5mlkf4s9zvqxka21i52";
62 release."1.2.4+coq8.12".rev = "v1.2.4-8.12";
63 release."1.2.4+coq8.12".sha256 = "1n0w8is464qcq8mk2mv7amaf0khbjz5mpc9phf0rhpjm0lb22cb3";
64 release."1.2.4+coq8.13".rev = "v1.2.4-8.13";
65 release."1.2.4+coq8.13".sha256 = "0i014lshsdflzw6h0qxra9d2f0q82vffxv2f29awbb9ad0p4rq4q";
66 release."1.3+8.13".rev = "v1.3-8.13";
67 release."1.3+8.13".sha256 = "1jwjbkkkk4bwf6pz4zzz8fy5bb17aqyf4smkja59rgj9ya6nrdhg";
68 release."1.3+8.14".rev = "v1.3-8.14";
69 release."1.3+8.14".sha256 = "19bj9nncd1r9g4273h5qx35gs3i4bw5z9bhjni24b413hyj55hkv";
70 release."1.3+8.15".rev = "v1.3-8.15";
71 release."1.3+8.15".sha256 = "1vfcfpsp9zyj0sw0cwibk76nj6n0r6gwh8m1aa3lbvc0b1kbm32k";
72 release."1.3+8.16".rev = "v1.3-8.16";
73 release."1.3+8.16".sha256 = "sha256-zyMGeRObtSGWh7n3WCqesBZL5EgLvKwmnTy09rYpxyE=";
74 release."1.3+8.17".rev = "v1.3-8.17";
75 release."1.3+8.17".sha256 = "sha256-yNotSIxFkhTg3reZIchGQ7cV9WmTJ7p7hPfKGBiByDw=";
76 release."1.3+8.18".rev = "v1.3-8.18";
77 release."1.3+8.18".sha256 = "sha256-8MZO9vWdr8wlAov0lBTYMnde0RuMyhaiM99zp7Zwfao=";
78 release."1.3+8.19".rev = "v1.3-8.19";
79 release."1.3+8.19".sha256 = "sha256-roBCWfAHDww2Z2JbV5yMI3+EOfIsv3WvxEcUbBiZBsk=";
80 release."1.3.1+8.20".rev = "v1.3.1-8.20";
81 release."1.3.1+8.20".sha256 = "sha256-u8LB1KiACM5zVaoL7dSdHYvZgX7pf30VuqtjLLGuTzc=";
82 release."1.3.1+9.0".rev = "v1.3.1-9.0";
83 release."1.3.1+9.0".sha256 = "sha256-186Z0/wCuGAjIvG1LoYBMPooaC6HmnKWowYXuR0y6bA=";
84 release."1.3.1+9.1".rev = "v1.3.1-9.1";
85 release."1.3.1+9.1".sha256 = "sha256-LtYbAR3jt+JbYcqP+m1n3AZhAWSMIeOZtmdSJwg7L1A=";
86
87 mlPlugin = true;
88
89 useDuneifVersion = v: v != null && (v == "dev" || lib.versionAtLeast v "1.3.1+9.0");
90
91 propagatedBuildInputs = [ stdlib ];
92
93 meta = {
94 homepage = "https://mattam82.github.io/Coq-Equations/";
95 description = "Plugin for Coq to add dependent pattern-matching";
96 maintainers = with lib.maintainers; [ jwiegley ];
97 };
98}).overrideAttrs
99 (
100 o:
101 if o.version != null && o.version != "dev" && !(lib.versionAtLeast o.version "1.3.1+9.0") then
102 {
103 preBuild = "coq_makefile -f _CoqProject -o Makefile${
104 lib.optionalString (lib.versionAtLeast o.version "1.2.1" || o.version == "dev") ".coq"
105 }";
106 }
107 else
108 {
109 propagatedBuildInputs = o.propagatedBuildInputs ++ [ coq.ocamlPackages.ppx_optcomp ];
110 }
111 )