coqPackages.coq-elpi: enable to override ocamlPackages.elpi version

This commit is contained in:
Pierre Roux
2025-01-17 14:49:24 +01:00
committed by Vincent Laporte
parent c21233f17e
commit ab255a671a
@@ -5,25 +5,30 @@
coq,
stdlib,
version ? null,
elpi-version ? null,
}:
let
elpi = coq.ocamlPackages.elpi.override (
lib.switch coq.coq-version [
{ case = "8.11"; out = { version = "1.11.4"; }; }
{ case = "8.12"; out = { version = "1.12.0"; }; }
{ case = "8.13"; out = { version = "1.13.7"; }; }
{ case = "8.14"; out = { version = "1.13.7"; }; }
{ case = "8.15"; out = { version = "1.15.0"; }; }
{ case = "8.16"; out = { version = "1.17.0"; }; }
{ case = "8.17"; out = { version = "1.17.0"; }; }
{ case = "8.18"; out = { version = "1.18.1"; }; }
{ case = "8.19"; out = { version = "1.18.1"; }; }
{ case = "8.20"; out = { version = "1.19.2"; }; }
] { }
);
in
(mkCoqDerivation {
default-elpi-version = if elpi-version != null then elpi-version else (
lib.switch coq.coq-version [
{ case = "8.11"; out = "1.11.4"; }
{ case = "8.12"; out = "1.12.0"; }
{ case = "8.13"; out = "1.13.7"; }
{ case = "8.14"; out = "1.13.7"; }
{ case = "8.15"; out = "1.15.0"; }
{ case = "8.16"; out = "1.17.0"; }
{ case = "8.17"; out = "1.17.0"; }
{ case = "8.18"; out = "1.18.1"; }
{ case = "8.19"; out = "1.18.1"; }
{ case = "8.20"; out = "1.19.2"; }
] { }
);
elpi = coq.ocamlPackages.elpi.override { version = default-elpi-version; };
propagatedBuildInputs_wo_elpi = [
coq.ocamlPackages.findlib
stdlib
];
derivation = mkCoqDerivation {
pname = "elpi";
repo = "coq-elpi";
owner = "LPCIC";
@@ -81,11 +86,8 @@ in
mlPlugin = true;
useDuneifVersion = v: lib.versions.isGe "2.2.0" v || v == "dev";
propagatedBuildInputs = [
coq.ocamlPackages.findlib
elpi
stdlib
];
propagatedBuildInputs = propagatedBuildInputs_wo_elpi ++ [ elpi ];
preConfigure = ''
make elpi/dune || true
@@ -96,11 +98,23 @@ in
maintainers = [ lib.maintainers.cohencyril ];
license = lib.licenses.lgpl21Plus;
};
}).overrideAttrs
};
patched-derivation1 = derivation.overrideAttrs
(
o:
lib.optionalAttrs (o ? elpi-version)
{
propagatedBuildInputs = propagatedBuildInputs_wo_elpi ++ [
(coq.ocamlPackages.elpi.override { version = o.elpi-version; })
];
}
);
patched-derivation2 = patched-derivation1.overrideAttrs
(
o:
lib.optionalAttrs (o.version != null && (o.version == "dev" || lib.versions.isGe "2.2.0" o.version))
{
propagatedBuildInputs = o.propagatedBuildInputs ++ [ coq.ocamlPackages.ppx_optcomp ];
}
)
);
in patched-derivation2