summary refs log tree commit diff
path: root/pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix
blob: e432e5f963ed6fb0ac11d3054ef473d304d9fa8b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
{ lib
, buildDunePackage
, fetchFromGitHub
, fetchpatch
, alcotest
, cmdliner
, ppx_deriving
, ppxlib
}:

buildDunePackage rec {
  pname = "ppx_deriving_cmdliner";
  version = "0.6.1";

  minimalOCamlVersion = "4.11";

  src = fetchFromGitHub {
    owner = "hammerlab";
    repo = pname;
    rev = "v${version}";
    sha256 = "sha256-/22KLQnxu3e2ZSca6ZLxTJDfv/rsmgCUkJnZC0RwRi8";
  };

  patches = [
    # Ppxlib.0.26.0 compatibility
    # remove when a new version is released
    (fetchpatch {
      url = "https://patch-diff.githubusercontent.com/raw/hammerlab/ppx_deriving_cmdliner/pull/50.patch";
      sha256 = "sha256-FfUfEAsyobwZ99+s5sFAaCE6Xgx7jLr/q79OxDbGcvQ=";
    })
  ];

  propagatedBuildInputs = [
    cmdliner
    ppx_deriving
    ppxlib
  ];

  doCheck = true;
  checkInputs = [
    alcotest
  ];

  meta = with lib; {
    description = "Ppx_deriving plugin for generating command line interfaces from types for OCaml";
    homepage = "https://github.com/hammerlab/ppx_deriving_cmdliner";
    license = licenses.asl20;
    maintainers = [ maintainers.romildo ];
  };
}