nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 mkCoqDerivation,
4 coq,
5 serapi,
6 makeWrapper,
7 version ? null,
8}:
9
10(mkCoqDerivation rec {
11 pname = "coq-lsp";
12 owner = "ejgallego";
13 namePrefix = [ ];
14
15 useDune = true;
16
17 release."0.1.8+8.16".sha256 = "sha256-dEEAK5IXGjHB8D/fYJRQG/oCotoXJuWLxXB0GQlY2eo=";
18 release."0.2.3+8.17".sha256 = "sha256-s7GXRYxuCMXm0XpKAyEwYqolsVFcKHhM71uabqqK5BY=";
19 release."0.2.3+8.18".sha256 = "sha256-0cEuMWuNJwfiPdc0aHKk3EQbkVRIbVukS586EWSHCgo=";
20 release."0.2.3+8.19".sha256 = "sha256-0eQQheY2yjS7shifhUlVPLXvTmyvgNpx7deLWXBRTfA=";
21 release."0.2.3+8.20".sha256 = "sha256-TUVS8jkgf1MMOOx5y70OaeZkdIgdgmyGQ2/zKxeplEk=";
22 release."0.2.3+9.0".sha256 = "sha256-eZMM4gYRXQroEIKz6XlffyHNYryEF5dIeIoVbEulh6M=";
23 release."0.2.4+8.20".sha256 = "sha256-mQxh2/Cb5hZ99TtqWYLpZ/BRPrm5GRDYPDfKlCTK9N4=";
24 release."0.2.4+9.0".sha256 = "sha256-ICPdNxJODNqmUErdTkNk7s52MRuINWLbAPm0rmXFW18=";
25 release."0.2.4+9.1".sha256 = "sha256-HNHA2vbX70oZkd4QtbP28UbTRXatqxJdxw1OWDVDE8U=";
26 release."0.2.5+8.20".sha256 = "sha256-OduwwJESXVEkeX+w8nLEhLUtPo4YGDPj21yWyc1uv3U=";
27 release."0.2.5+9.0".sha256 = "sha256-nbMf7xziBYoBH0F8YBUEybCHSdsaOxlqXnyngeQNg3c=";
28 release."0.2.5+9.1".sha256 = "sha256-PzIgo15zI3JjibT8GzyHdTwofd3IF6eRmUc47NveH70=";
29
30 inherit version;
31 defaultVersion =
32 with lib.versions;
33 lib.switch coq.coq-version [
34 {
35 case = isEq "8.16";
36 out = "0.1.8+8.16";
37 }
38 {
39 case = isEq "8.17";
40 out = "0.2.3+8.17";
41 }
42 {
43 case = isEq "8.18";
44 out = "0.2.3+8.18";
45 }
46 {
47 case = isEq "8.19";
48 out = "0.2.3+8.19";
49 }
50 {
51 case = isEq "8.20";
52 out = "0.2.5+8.20";
53 }
54 {
55 case = isEq "9.0";
56 out = "0.2.5+9.0";
57 }
58 {
59 case = isEq "9.1";
60 out = "0.2.5+9.1";
61 }
62 ] null;
63
64 nativeBuildInputs = [ makeWrapper ];
65
66 installPhase = ''
67 runHook preInstall
68 dune install -p ${pname} --prefix=$out --libdir $OCAMLFIND_DESTDIR
69 wrapProgram $out/bin/coq-lsp --prefix OCAMLPATH : $OCAMLPATH
70 runHook postInstall
71 '';
72
73 propagatedBuildInputs = with coq.ocamlPackages; [
74 dune-build-info
75 menhir
76 result
77 uri
78 yojson
79 ];
80
81 meta = {
82 description = "Language Server Protocol and VS Code Extension for Coq";
83 homepage = "https://github.com/ejgallego/coq-lsp";
84 changelog = "https://github.com/ejgallego/coq-lsp/blob/${defaultVersion}/CHANGES.md";
85 maintainers = with lib.maintainers; [ alizter ];
86 license = lib.licenses.lgpl21Only;
87 };
88}).overrideAttrs
89 (
90 o: with coq.ocamlPackages; {
91 propagatedBuildInputs =
92 o.propagatedBuildInputs
93 ++ (
94 if o.version != null && lib.versions.isLe "0.1.9+8.19" o.version && o.version != "dev" then
95 [
96 camlp-streams
97 serapi
98 ]
99 else if o.version != null && lib.versions.isLe "0.2.3" o.version && o.version != "dev" then
100 [
101 cmdliner
102 ppx_deriving
103 ppx_deriving_yojson
104 ppx_import
105 ppx_sexp_conv
106 ppx_compare
107 ppx_hash
108 sexplib
109 ]
110 else
111 [
112 cmdliner
113 ppx_deriving_yojson
114 ppx_hash
115 ppx_import
116 ppx_sexp_conv
117 sexplib
118 tyxml
119 ]
120 );
121
122 patches = lib.optional (lib.versions.isEq "0.1.8" o.version) ./coq-loader.patch;
123 }
124 )