nixpkgs/pkgs/development/ocaml-modules/cstruct/ppx.nix
2021-02-01 16:11:29 +01:00

33 lines
996 B
Nix

{ lib, buildDunePackage, cstruct, sexplib, ppxlib, stdlib-shims
, ounit, cppo, ppx_sexp_conv, cstruct-unix, cstruct-sexp
, fetchpatch
}:
if !lib.versionAtLeast (cstruct.version or "1") "3"
then cstruct
else
buildDunePackage {
pname = "ppx_cstruct";
inherit (cstruct) version src useDune2 meta;
minimumOCamlVersion = "4.07";
# prevent ANSI escape sequences from messing up the test cases
# https://github.com/mirage/ocaml-cstruct/issues/283
patches = [
(fetchpatch {
url = "https://github.com/mirage/ocaml-cstruct/pull/285/commits/60dfed98b4c34455bf339ac60e2ed5ef05feb48f.patch";
sha256 = "1x9i62nrlfy9l44vb0a7qjfrg2wyki4c8nmmqnzwpcbkgxi3q6n5";
})
];
propagatedBuildInputs = [ cstruct ppxlib sexplib stdlib-shims ];
# disable until ppx_sexp_conv uses ppxlib 0.20.0 (or >= 0.16.0)
# since the propagation of the older ppxlib breaks the ppx_cstruct
# build.
doCheck = false;
checkInputs = [ ounit cppo ppx_sexp_conv cstruct-sexp cstruct-unix ];
}