From cf7df9230be3f971d68685c2d5768896037b7633 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Wed, 23 Aug 2017 17:17:59 +0000 Subject: [PATCH] ocamlPackages.ppx_derivers: init at 1.0 Ppx_derivers is a tiny package whose sole purpose is to allow ppx_deriving and ppx_type_conv to inter-operate gracefully when linked as part of the same ocaml-migrate-parsetree driver. Homepage: https://github.com/diml/ppx_derivers --- .../ocaml-modules/ppx_derivers/default.nix | 29 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 ++ 2 files changed, 31 insertions(+) create mode 100644 pkgs/development/ocaml-modules/ppx_derivers/default.nix diff --git a/pkgs/development/ocaml-modules/ppx_derivers/default.nix b/pkgs/development/ocaml-modules/ppx_derivers/default.nix new file mode 100644 index 00000000000..52c28efcb49 --- /dev/null +++ b/pkgs/development/ocaml-modules/ppx_derivers/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub, ocaml, findlib, jbuilder }: + +if !stdenv.lib.versionAtLeast ocaml.version "4.02" +then throw "ppx_derivers is not available for OCaml ${ocaml.version}" +else + +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-ppx_derivers-${version}"; + version = "1.0"; + + src = fetchFromGitHub { + owner = "diml"; + repo = "ppx_derivers"; + rev = version; + sha256 = "049yy9706lv1li6a1bibkz1qq2ixxbdyhf4f5w9pv71jc3dlpfy8"; + }; + + buildInputs = [ ocaml findlib jbuilder ]; + + inherit (jbuilder) installPhase; + + meta = { + description = "Shared [@@deriving] plugin registry"; + license = stdenv.lib.licenses.bsd3; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + inherit (src.meta) homepage; + inherit (ocaml.meta) platforms; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 492b22c0552..29f3ae51a0a 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -536,6 +536,8 @@ let then callPackage ../development/ocaml-modules/ppx_blob {} else null; + ppx_derivers = callPackage ../development/ocaml-modules/ppx_derivers {}; + ppx_deriving = if lib.versionAtLeast ocaml.version "4.02" then callPackage ../development/ocaml-modules/ppx_deriving {}