Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at netboot-syslinux-multiplatform 118 lines 2.4 kB view raw
1{ buildDunePackage 2, lib 3, cppo 4, stdlib-shims 5, ppx_yojson_conv_lib 6, ocaml-syntax-shims 7, jsonrpc 8, omd 9, octavius 10, dune-build-info 11, dune-rpc 12, uutf 13, dyn 14, re 15, stdune 16, chrome-trace 17, dune_3 18, csexp 19, result 20, pp 21, cmdliner 22, ordering 23, ocamlformat-rpc-lib 24}: 25 26buildDunePackage rec { 27 pname = "lsp"; 28 inherit (jsonrpc) version src; 29 duneVersion = "3"; 30 minimalOCamlVersion = 31 if lib.versionAtLeast version "1.7.0" then 32 "4.12" 33 else 34 "4.06"; 35 36 # unvendor some (not all) dependencies. 37 # They are vendored by upstream only because it is then easier to install 38 # ocaml-lsp without messing with your opam switch, but nix should prevent 39 # this type of problems without resorting to vendoring. 40 preBuild = lib.optionalString (lib.versionOlder version "1.10.4") '' 41 rm -r ocaml-lsp-server/vendor/{octavius,uutf,omd,cmdliner} 42 ''; 43 44 buildInputs = 45 if lib.versionAtLeast version "1.12.0" then 46 [ 47 pp 48 re 49 ppx_yojson_conv_lib 50 octavius 51 dune-build-info 52 dune-rpc 53 omd 54 cmdliner 55 ocamlformat-rpc-lib 56 dyn 57 stdune 58 chrome-trace 59 ] 60 else if lib.versionAtLeast version "1.10.0" then 61 [ 62 pp 63 re 64 ppx_yojson_conv_lib 65 octavius 66 dune-build-info 67 dune-rpc 68 omd 69 cmdliner 70 ocamlformat-rpc-lib 71 dyn 72 stdune 73 ] 74 else if lib.versionAtLeast version "1.7.0" then 75 [ pp re ppx_yojson_conv_lib octavius dune-build-info omd cmdliner ocamlformat-rpc-lib ] 76 else 77 [ 78 ppx_yojson_conv_lib 79 ocaml-syntax-shims 80 octavius 81 dune-build-info 82 omd 83 cmdliner 84 ]; 85 86 nativeBuildInputs = lib.optional (lib.versionOlder version "1.7.0") cppo; 87 88 propagatedBuildInputs = 89 if lib.versionAtLeast version "1.14.0" then [ 90 jsonrpc 91 ppx_yojson_conv_lib 92 uutf 93 ] else if lib.versionAtLeast version "1.10.0" then [ 94 dyn 95 jsonrpc 96 ordering 97 ppx_yojson_conv_lib 98 stdune 99 uutf 100 ] else if lib.versionAtLeast version "1.7.0" then [ 101 csexp 102 jsonrpc 103 pp 104 ppx_yojson_conv_lib 105 result 106 uutf 107 ] else [ 108 csexp 109 jsonrpc 110 ppx_yojson_conv_lib 111 stdlib-shims 112 uutf 113 ]; 114 115 meta = jsonrpc.meta // { 116 description = "LSP protocol implementation in OCaml"; 117 }; 118}