summaryrefslogtreecommitdiff
path: root/pkgs/development/coq-modules/json/default.nix
blob: 622ea58265168de15ef791c9a12e9b18e72063f5 (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
{
  lib,
  mkCoqDerivation,
  coq,
  parsec,
  MenhirLib,
  version ? null,
}:

(mkCoqDerivation {
  pname = "json";
  owner = "liyishuai";
  repo = "coq-json";
  inherit version;

  defaultVersion =
    let
      case = case: out: { inherit case out; };
      inherit (lib.versions) range;
    in
    lib.switch coq.coq-version [
      (case (range "8.14" "9.1") "0.2.0")
      (case (range "8.14" "8.20") "0.1.3")
    ] null;
  release = {
    "0.2.0".sha256 = "sha256-qDRTgWLUvu4x3/d3BDcqo2I4W5ZmLyRiwuY/Tm/FuKA=";
    "0.1.3".sha256 = "sha256-lElAzW4IuX+BB6ngDjlyKn0MytLRfbhQanB+Lct/WR0=";
  };
  releaseRev = v: "v${v}";

  propagatedBuildInputs = [
    parsec
    MenhirLib
    coq.ocamlPackages.menhir
  ];

  useDuneifVersion = v: lib.versions.isGe "0.2.0" v || v == "dev";

  meta = {
    description = "From JSON to Coq, and vice versa";
    license = lib.licenses.bsd3;
  };
}).overrideAttrs
  (
    o:
    lib.optionalAttrs (o.version != null && lib.versions.isLt "0.2.0" o.version) {
      buildFlags = [
        "MENHIRFLAGS=--coq"
        "MENHIRFLAGS+=--coq-no-version-check"
      ];
    }
  )