lol
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 146 lines 3.0 kB view raw
1{ 2 buildDunePackage, 3 lib, 4 cppo, 5 stdlib-shims, 6 ppx_yojson_conv_lib, 7 ocaml-syntax-shims, 8 jsonrpc, 9 omd, 10 octavius, 11 dune-build-info, 12 dune-rpc, 13 uutf, 14 dyn, 15 re, 16 stdune, 17 chrome-trace, 18 csexp, 19 result, 20 pp, 21 cmdliner, 22 ordering, 23 ocamlformat-rpc-lib, 24 ocaml, 25 version ? 26 if lib.versionAtLeast ocaml.version "5.3" then 27 "1.23.0" 28 else if lib.versionAtLeast ocaml.version "5.2" then 29 "1.21.0" 30 else if lib.versionAtLeast ocaml.version "4.14" then 31 "1.18.0" 32 else if lib.versionAtLeast ocaml.version "4.13" then 33 "1.10.5" 34 else if lib.versionAtLeast ocaml.version "4.12" then 35 "1.9.0" 36 else 37 "1.4.1", 38}: 39 40let 41 jsonrpc_v = jsonrpc.override { 42 inherit version; 43 }; 44in 45buildDunePackage rec { 46 pname = "lsp"; 47 inherit (jsonrpc_v) version src; 48 minimalOCamlVersion = if lib.versionAtLeast version "1.7.0" then "4.12" else "4.06"; 49 50 # unvendor some (not all) dependencies. 51 # They are vendored by upstream only because it is then easier to install 52 # ocaml-lsp without messing with your opam switch, but nix should prevent 53 # this type of problems without resorting to vendoring. 54 preBuild = lib.optionalString (lib.versionOlder version "1.10.4") '' 55 rm -r ocaml-lsp-server/vendor/{octavius,uutf,omd,cmdliner} 56 ''; 57 58 buildInputs = 59 if lib.versionAtLeast version "1.12.0" then 60 [ 61 pp 62 re 63 ppx_yojson_conv_lib 64 octavius 65 dune-build-info 66 dune-rpc 67 omd 68 cmdliner 69 ocamlformat-rpc-lib 70 dyn 71 stdune 72 chrome-trace 73 ] 74 else if lib.versionAtLeast version "1.10.0" then 75 [ 76 pp 77 re 78 ppx_yojson_conv_lib 79 octavius 80 dune-build-info 81 dune-rpc 82 omd 83 cmdliner 84 ocamlformat-rpc-lib 85 dyn 86 stdune 87 ] 88 else if lib.versionAtLeast version "1.7.0" then 89 [ 90 re 91 octavius 92 dune-build-info 93 omd 94 cmdliner 95 ocamlformat-rpc-lib 96 ] 97 else 98 [ 99 ppx_yojson_conv_lib 100 ocaml-syntax-shims 101 octavius 102 dune-build-info 103 omd 104 cmdliner 105 ]; 106 107 nativeBuildInputs = lib.optional (lib.versionOlder version "1.7.0") cppo; 108 109 propagatedBuildInputs = 110 if lib.versionAtLeast version "1.14.0" then 111 [ 112 jsonrpc 113 ppx_yojson_conv_lib 114 uutf 115 ] 116 else if lib.versionAtLeast version "1.10.0" then 117 [ 118 dyn 119 jsonrpc 120 ordering 121 ppx_yojson_conv_lib 122 stdune 123 uutf 124 ] 125 else if lib.versionAtLeast version "1.7.0" then 126 [ 127 csexp 128 jsonrpc 129 (pp.override { version = "1.2.0"; }) 130 ppx_yojson_conv_lib 131 result 132 uutf 133 ] 134 else 135 [ 136 csexp 137 jsonrpc 138 ppx_yojson_conv_lib 139 stdlib-shims 140 uutf 141 ]; 142 143 meta = jsonrpc.meta // { 144 description = "LSP protocol implementation in OCaml"; 145 }; 146}