1{
2 lib,
3 mkCoqDerivation,
4 coq,
5 bignums,
6 math-classes,
7 coq-elpi,
8 version ? null,
9}:
10
11(mkCoqDerivation {
12 pname = "corn";
13 inherit version;
14 defaultVersion =
15 with lib.versions;
16 lib.switch coq.coq-version [
17 {
18 case = (range "8.18" "8.20");
19 out = "8.20.0";
20 }
21 {
22 case = (range "8.17" "8.20");
23 out = "8.19.0";
24 }
25 {
26 case = (range "8.14" "8.18");
27 out = "8.18.0";
28 }
29 {
30 case = (range "8.11" "8.17");
31 out = "8.16.0";
32 }
33 {
34 case = (range "8.7" "8.15");
35 out = "8.13.0";
36 }
37 {
38 case = "8.6";
39 out = "8.8.1";
40 }
41 ] null;
42 release = {
43 "8.8.1".sha256 = "0gh32j0f18vv5lmf6nb87nr5450w6ai06rhrnvlx2wwi79gv10wp";
44 "8.12.0".sha256 = "0b92vhyzn1j6cs84z2182fn82hxxj0bqq7hk6cs4awwb3vc7dkhi";
45 "8.13.0".sha256 = "1wzr7mdsnf1rq7q0dvmv55vxzysy85b00ahwbs868bl7m8fk8x5b";
46 "8.16.0".sha256 = "sha256-ZE/EEIndxHfo/9Me5NX4ZfcH0ZAQ4sRfZY7LRZfLXBQ=";
47 "8.18.0".sha256 = "sha256-ow3mfarZ1PvBGf5WLnI8LdF3E+8A6fN7cOcXHrZJLo0=";
48 "8.19.0".sha256 = "sha256-h5MlfRuv2hTbxGmpLUEGQO1YqQTwUNEHZzCfvdOU1TA=";
49 "8.20.0".sha256 = "sha256-tl68REU6xTbSOzhPucQPd9A3YnnaMNbSY8gl4Seyp10=";
50 };
51
52 configureScript = "./configure.sh";
53 dontAddPrefix = true;
54
55 mlPlugin = true; # uses coq-bignums.plugin
56
57 propagatedBuildInputs = [
58 bignums
59 math-classes
60 ];
61
62 meta = with lib; {
63 homepage = "http://c-corn.github.io/";
64 license = licenses.gpl2;
65 description = "Coq library for constructive analysis";
66 maintainers = [ maintainers.vbgl ];
67 };
68}).overrideAttrs
69 (o: {
70 propagatedBuildInputs =
71 o.propagatedBuildInputs
72 ++ lib.optional (lib.versions.isGt "8.19.0" o.version || o.version == "dev") coq-elpi;
73 })