1{
2 lib,
3 mkCoqDerivation,
4 coq,
5 parsec,
6 MenhirLib,
7 version ? null,
8}:
9
10(mkCoqDerivation {
11 pname = "json";
12 owner = "liyishuai";
13 repo = "coq-json";
14 inherit version;
15
16 defaultVersion =
17 let
18 case = case: out: { inherit case out; };
19 inherit (lib.versions) range;
20 in
21 lib.switch coq.coq-version [
22 (case (range "8.14" "9.1") "0.2.0")
23 (case (range "8.14" "8.20") "0.1.3")
24 ] null;
25 release = {
26 "0.2.0".sha256 = "sha256-qDRTgWLUvu4x3/d3BDcqo2I4W5ZmLyRiwuY/Tm/FuKA=";
27 "0.1.3".sha256 = "sha256-lElAzW4IuX+BB6ngDjlyKn0MytLRfbhQanB+Lct/WR0=";
28 };
29 releaseRev = v: "v${v}";
30
31 propagatedBuildInputs = [
32 parsec
33 MenhirLib
34 coq.ocamlPackages.menhir
35 ];
36
37 useDuneifVersion = v: lib.versions.isGe "0.2.0" v || v == "dev";
38
39 meta = {
40 description = "From JSON to Coq, and vice versa";
41 license = lib.licenses.bsd3;
42 };
43}).overrideAttrs
44 (
45 o:
46 lib.optionalAttrs (o.version != null && lib.versions.isLt "0.2.0" o.version) {
47 buildFlags = [
48 "MENHIRFLAGS=--coq"
49 "MENHIRFLAGS+=--coq-no-version-check"
50 ];
51 }
52 )