diff --git a/pkgs/development/ocaml-modules/ppx_deriving/default.nix b/pkgs/development/ocaml-modules/ppx_deriving/default.nix index 24cfbcf5b7af..d45298972cce 100644 --- a/pkgs/development/ocaml-modules/ppx_deriving/default.nix +++ b/pkgs/development/ocaml-modules/ppx_deriving/default.nix @@ -1,41 +1,22 @@ -{ stdenv, ocaml, findlib, ocamlbuild, fetchzip -, cppo, ppx_tools, ppx_derivers, result, ounit, ocaml-migrate-parsetree +{ lib, fetchzip, buildDunePackage +, cppo, ppxfind, ppx_tools, ppx_derivers, result, ounit, ocaml-migrate-parsetree }: -if !stdenv.lib.versionAtLeast ocaml.version "4.02" -then throw "ppx_deriving is not available for OCaml ${ocaml.version}" -else - -let param = - if ocaml.version == "4.03.0" - then { - version = "4.1"; - sha256 = "0cy9p8d8cbcxvqyyv8fz2z9ypi121zrgaamdlp4ld9f3jnwz7my9"; - extraPropagatedBuildInputs = []; - } else { - version = "4.2.1"; - sha256 = "1yhhjnncbbb7fsif7qplndh01s1xd72dqm8f3jkgx9y4ariqqvf9"; - extraPropagatedBuildInputs = [ ocaml-migrate-parsetree ppx_derivers ]; -}; in - -stdenv.mkDerivation rec { - name = "ocaml${ocaml.version}-ppx_deriving-${version}"; - inherit (param) version; +buildDunePackage rec { + pname = "ppx_deriving"; + version = "4.4"; src = fetchzip { url = "https://github.com/ocaml-ppx/ppx_deriving/archive/v${version}.tar.gz"; - inherit (param) sha256; + sha256 = "0b2gaxlh54pcz3b4891yd143nx852mwggcy0yhq8g85dl3iisxzq"; }; - buildInputs = [ ocaml findlib ocamlbuild cppo ounit ]; - propagatedBuildInputs = param.extraPropagatedBuildInputs ++ - [ ppx_tools result ]; + buildInputs = [ ppxfind cppo ounit ]; + propagatedBuildInputs = [ ocaml-migrate-parsetree ppx_derivers ppx_tools result ]; - createFindlibDestdir = true; + doCheck = true; - installPhase = "OCAMLPATH=$OCAMLPATH:`ocamlfind printconf destdir` make install"; - - meta = with stdenv.lib; { + meta = with lib; { description = "deriving is a library simplifying type-driven code generation on OCaml >=4.02."; maintainers = [ maintainers.maurer ]; license = licenses.mit;