Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / ocaml-modules / ocamlformat / generic.nix
blobca5c78bca7d976c945e2fd886336d652e40975df
1 { lib, fetchurl, version ? "0.26.1", astring, base, camlp-streams, cmdliner_1_0
2 , cmdliner_1_1, csexp, dune-build-info, either, fix, fpath, menhirLib, menhirSdk
3 , ocaml-version, ocp-indent, odoc-parser, result, stdio, uuseg, uutf, ... }:
5 # The ocamlformat package have been split into two in version 0.25.1:
6 # one for the library and one for the executable.
7 # Both have the same sources and very similar dependencies.
9 rec {
10   tarballName = "ocamlformat-${version}.tbz";
12   src = fetchurl {
13     url =
14       "https://github.com/ocaml-ppx/ocamlformat/releases/download/${version}/${tarballName}";
15     sha256 = {
16       "0.19.0" = "0ihgwl7d489g938m1jvgx8azdgq9f5np5mzqwwya797hx2m4dz32";
17       "0.20.0" = "sha256-JtmNCgwjbCyUE4bWqdH5Nc2YSit+rekwS43DcviIfgk=";
18       "0.20.1" = "sha256-fTpRZFQW+ngoc0T6A69reEUAZ6GmHkeQvxspd5zRAjU=";
19       "0.21.0" = "sha256-KhgX9rxYH/DM6fCqloe4l7AnJuKrdXSe6Y1XY3BXMy0=";
20       "0.22.4" = "sha256-61TeK4GsfMLmjYGn3ICzkagbc3/Po++Wnqkb2tbJwGA=";
21       "0.23.0" = "sha256-m9Pjz7DaGy917M1GjyfqG5Lm5ne7YSlJF2SVcDHe3+0=";
22       "0.24.0" = "sha256-Zil0wceeXmq2xy0OVLxa/Ujl4Dtsmc4COyv6Jo7rVaM=";
23       "0.24.1" = "sha256-AjQl6YGPgOpQU3sjcaSnZsFJqZV9BYB+iKAE0tX0Qc4=";
24       "0.25.1" = "sha256-3I8qMwyjkws2yssmI7s2Dti99uSorNKT29niJBpv0z0=";
25       "0.26.0" = "sha256-AxSUq3cM7xCo9qocvrVmDkbDqmwM1FexEP7IWadeh30=";
26       "0.26.1" = "sha256-2gBuQn8VuexhL7gI1EZZm9m3w+4lq+s9VVdHpw10xtc=";
27     }."${version}";
28   };
30   inherit version;
32   odoc-parser_v = odoc-parser.override {
33     version = if lib.versionAtLeast version "0.24.0" then
34       "2.0.0"
35     else if lib.versionAtLeast version "0.20.1" then
36       "1.0.1"
37     else
38       "0.9.0";
39   };
41   cmdliner_v =
42     if lib.versionAtLeast version "0.21.0" then cmdliner_1_1 else cmdliner_1_0;
44   library_deps = [
45     base
46     cmdliner_v
47     dune-build-info
48     fix
49     fpath
50     menhirLib
51     menhirSdk
52     ocp-indent
53     stdio
54     uuseg
55     uutf
56   ] ++ lib.optionals (lib.versionAtLeast version "0.20.0") [
57     either
58     ocaml-version
59   ] ++ lib.optionals (lib.versionAtLeast version "0.22.4") [ csexp ]
60     ++ (if lib.versionOlder version "0.25.1" then
61       [ odoc-parser_v ]
62     else [
63       camlp-streams
64       result
65       astring
66     ]);