depot/third_party/nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix

108 lines
2.6 KiB
Nix

{
buildDunePackage,
stdlib-shims,
ppx_yojson_conv_lib,
ocaml-syntax-shims,
yojson,
result,
fetchurl,
lib,
ocaml,
version ?
if lib.versionAtLeast ocaml.version "5.3" then
"1.22.0"
else if lib.versionAtLeast ocaml.version "5.2" then
"1.21.0"
else if lib.versionAtLeast ocaml.version "4.14" then
"1.18.0"
else if lib.versionAtLeast ocaml.version "4.13" then
"1.10.5"
else if lib.versionAtLeast ocaml.version "4.12" then
"1.9.0"
else
"1.4.1",
}:
let
params =
{
"1.22.0" = {
name = "lsp";
minimalOCamlVersion = "5.2";
sha256 = "sha256-UZ3DV30V3CIQ3vpYBIGnQ1eRGNUGk7aRuxDLyCA/tYE=";
};
"1.21.0" = {
name = "lsp";
minimalOCamlVersion = "5.2";
sha256 = "sha256-Z4cDN/8j0NK6Q3dL+1io/eBJd+o32k0txQDtC1fO9xc=";
};
"1.18.0" = {
name = "lsp";
minimalOCamlVersion = "4.14";
sha256 = "sha256-tZ2kPM/S/9J3yeX2laDjnHLA144b8svy9iwae32nXwM=";
};
"1.17.0" = {
name = "lsp";
minimalOCamlVersion = "4.14";
sha256 = "sha256-j7i71xfu/SYItNg0WBBbZg4N46ETTcj8IWrmWdTRlgA=";
};
"1.14.2" = {
name = "lsp";
minimalOCamlVersion = "4.14";
sha256 = "sha256-1R+HYaGbPLGDs5DMN3jmnrZFMhMmPUHgF+s+yNzIVJQ=";
};
"1.10.5" = {
name = "jsonrpc";
minimalOCamlVersion = "4.13";
sha256 = "sha256-TeJS6t1ruWhWPvWNatrnSUWI6T17XKiosHLYizBDDcw=";
};
"1.9.0" = {
name = "jsonrpc";
minimalOCamlVersion = "4.12";
sha256 = "sha256:1ac44n6g3rf84gvhcca545avgf9vpkwkkkm0s8ipshfhp4g4jikh";
};
"1.4.1" = {
name = "jsonrpc";
minimalOCamlVersion = "4.06";
sha256 = "1ssyazc0yrdng98cypwa9m3nzfisdzpp7hqnx684rqj8f0g3gs6f";
};
}
."${version}";
in
buildDunePackage rec {
pname = "jsonrpc";
inherit version;
src = fetchurl {
url = "https://github.com/ocaml/ocaml-lsp/releases/download/${version}/${params.name}-${version}.tbz";
inherit (params) sha256;
};
inherit (params) minimalOCamlVersion;
buildInputs =
if lib.versionAtLeast version "1.7.0" then
[ ]
else
[
yojson
stdlib-shims
ocaml-syntax-shims
];
propagatedBuildInputs =
if lib.versionAtLeast version "1.7.0" then
[ ]
else
[
ppx_yojson_conv_lib
result
];
meta = with lib; {
description = "Jsonrpc protocol implementation in OCaml";
license = licenses.isc;
platforms = platforms.unix;
maintainers = [ ];
};
}