diff --git a/pkgs/development/ocaml-modules/repr/default.nix b/pkgs/development/ocaml-modules/repr/default.nix new file mode 100644 index 000000000000..de6877ddd68e --- /dev/null +++ b/pkgs/development/ocaml-modules/repr/default.nix @@ -0,0 +1,30 @@ +{ lib, buildDunePackage, fetchurl, fmt, uutf, jsonm, base64, either }: + +buildDunePackage rec { + pname = "repr"; + version = "0.2.1"; + + minimumOCamlVersion = "4.08"; + + src = fetchurl { + url = "https://github.com/mirage/${pname}/releases/download/${version}/${pname}-fuzz-${version}.tbz"; + sha256 = "1cbzbawbn71mmpw8y84s1p2pbhc055w1znz64jvr00c7fdr9p8hc"; + }; + + useDune2 = true; + + propagatedBuildInputs = [ + fmt + uutf + jsonm + base64 + either + ]; + + meta = with lib; { + description = "Dynamic type representations. Provides no stability guarantee"; + homepage = "https://github.com/mirage/repr"; + license = licenses.isc; + maintainers = [ maintainers.sternenseemann ]; + }; +} diff --git a/pkgs/development/ocaml-modules/repr/ppx.nix b/pkgs/development/ocaml-modules/repr/ppx.nix new file mode 100644 index 000000000000..a1112ef9ac74 --- /dev/null +++ b/pkgs/development/ocaml-modules/repr/ppx.nix @@ -0,0 +1,23 @@ +{ buildDunePackage, repr, ppxlib, ppx_deriving, alcotest, hex }: + +buildDunePackage { + pname = "ppx_repr"; + + inherit (repr) src version useDune2; + + propagatedBuildInputs = [ + repr + ppxlib + ppx_deriving + ]; + + doCheck = true; + checkInputs = [ + alcotest + hex + ]; + + meta = repr.meta // { + description = "PPX deriver for type representations"; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 22c1dba5ae2b..e1fd3ccc8fc4 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -885,6 +885,8 @@ let resource-pooling = callPackage ../development/ocaml-modules/resource-pooling { }; + repr = callPackage ../development/ocaml-modules/repr { }; + result = callPackage ../development/ocaml-modules/ocaml-result { }; secp256k1 = callPackage ../development/ocaml-modules/secp256k1 { @@ -969,6 +971,8 @@ let ppx_irmin = callPackage ../development/ocaml-modules/irmin/ppx.nix { }; + ppx_repr = callPackage ../development/ocaml-modules/repr/ppx.nix { }; + ppx_tools = if lib.versionAtLeast ocaml.version "4.02" then callPackage ../development/ocaml-modules/ppx_tools {}