diff --git a/pkgs/development/ocaml-modules/ppx_deriving/default.nix b/pkgs/development/ocaml-modules/ppx_deriving/default.nix new file mode 100644 index 00000000000..4b4056a69d7 --- /dev/null +++ b/pkgs/development/ocaml-modules/ppx_deriving/default.nix @@ -0,0 +1,28 @@ +{stdenv, buildOcaml, fetchurl, + cppo, ppx_tools, result, ounit}: + +buildOcaml rec { + name = "ppx_deriving"; + version = "v3.3"; + + minimumSupportedOcamlVersion = "4.02"; + + src = fetchurl { + url = "https://github.com/whitequark/${name}/archive/${version}.tar.gz"; + sha256 = "1j20c6r2v7h05a4v9m8z5m1yqgwif41yrp63mik14pf3dkrj8x3f"; + }; + + hasSharedObjects = true; + + buildInputs = [ cppo ounit ]; + propagatedBuildInputs = + [ ppx_tools result ]; + + installPhase = "OCAMLPATH=$OCAMLPATH:`ocamlfind printconf destdir` make install"; + + meta = with stdenv.lib; { + description = "deriving is a library simplifying type-driven code generation on OCaml >=4.02."; + maintainers = [ maintainers.maurer ]; + license = licenses.mit; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 73b04319c78..f4e9b366d80 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5436,6 +5436,11 @@ in then callPackage ../development/ocaml-modules/ppx_blob {} else null; + ppx_deriving = + if lib.versionAtLeast ocaml_version "4.02" + then callPackage ../development/ocaml-modules/ppx_deriving {} + else null; + ppx_tools = if lib.versionAtLeast ocaml_version "4.02" then callPackage ../development/ocaml-modules/ppx_tools {}