From 959064cfbea7fc0cf5d290c79f4b6aca832193fd Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Sat, 18 Mar 2017 12:58:49 +0000 Subject: [PATCH] ocamlPackages.ppx_deriving_yojson: init at 3.0 deriving Yojson is a ppx_deriving plugin that generates JSON serializers and deserializers that use the Yojson library from an OCaml type definition. Homepage: https://github.com/whitequark/ppx_deriving_yojson --- .../ppx_deriving_yojson/default.nix | 32 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 ++ 2 files changed, 34 insertions(+) create mode 100644 pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix diff --git a/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix new file mode 100644 index 000000000000..69276fb5a7d6 --- /dev/null +++ b/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, opam, topkg, cppo +, ppx_import, ppx_deriving, yojson, ounit +}: + +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-ppx_deriving_yojson-${version}"; + version = "3.0"; + + src = fetchFromGitHub { + owner = "whitequark"; + repo = "ppx_deriving_yojson"; + rev = "v${version}"; + sha256 = "1id1a29qq0ax9qp98b5hv6p2q2r0vp4fbkkwzm1bxdhnasw97msk"; + }; + + buildInputs = [ ocaml findlib ocamlbuild opam cppo ounit ppx_import ]; + + propagatedBuildInputs = [ ppx_deriving yojson ]; + + inherit (topkg) installPhase; + + doCheck = true; + checkTarget = "test"; + + meta = { + description = "A Yojson codec generator for OCaml >= 4.02."; + inherit (src.meta) homepage; + license = stdenv.lib.licenses.mit; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + inherit (ocaml.meta) platforms; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 03afec1870fe..f46aa3a251c7 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -483,6 +483,8 @@ let then callPackage ../development/ocaml-modules/ppx_deriving {} else null; + ppx_deriving_yojson = callPackage ../development/ocaml-modules/ppx_deriving_yojson {}; + ppx_import = callPackage ../development/ocaml-modules/ppx_import {}; ppx_tools =