lol

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

authored by

Pierre Roux and committed by
Vincent Laporte
ab255a67 c21233f1

+37 -23
+37 -23
pkgs/development/coq-modules/coq-elpi/default.nix
··· 5 5 coq, 6 6 stdlib, 7 7 version ? null, 8 + elpi-version ? null, 8 9 }: 9 10 10 11 let 11 - elpi = coq.ocamlPackages.elpi.override ( 12 - lib.switch coq.coq-version [ 13 - { case = "8.11"; out = { version = "1.11.4"; }; } 14 - { case = "8.12"; out = { version = "1.12.0"; }; } 15 - { case = "8.13"; out = { version = "1.13.7"; }; } 16 - { case = "8.14"; out = { version = "1.13.7"; }; } 17 - { case = "8.15"; out = { version = "1.15.0"; }; } 18 - { case = "8.16"; out = { version = "1.17.0"; }; } 19 - { case = "8.17"; out = { version = "1.17.0"; }; } 20 - { case = "8.18"; out = { version = "1.18.1"; }; } 21 - { case = "8.19"; out = { version = "1.18.1"; }; } 22 - { case = "8.20"; out = { version = "1.19.2"; }; } 23 - ] { } 24 - ); 25 - in 26 - (mkCoqDerivation { 12 + default-elpi-version = if elpi-version != null then elpi-version else ( 13 + lib.switch coq.coq-version [ 14 + { case = "8.11"; out = "1.11.4"; } 15 + { case = "8.12"; out = "1.12.0"; } 16 + { case = "8.13"; out = "1.13.7"; } 17 + { case = "8.14"; out = "1.13.7"; } 18 + { case = "8.15"; out = "1.15.0"; } 19 + { case = "8.16"; out = "1.17.0"; } 20 + { case = "8.17"; out = "1.17.0"; } 21 + { case = "8.18"; out = "1.18.1"; } 22 + { case = "8.19"; out = "1.18.1"; } 23 + { case = "8.20"; out = "1.19.2"; } 24 + ] { } 25 + ); 26 + elpi = coq.ocamlPackages.elpi.override { version = default-elpi-version; }; 27 + propagatedBuildInputs_wo_elpi = [ 28 + coq.ocamlPackages.findlib 29 + stdlib 30 + ]; 31 + derivation = mkCoqDerivation { 27 32 pname = "elpi"; 28 33 repo = "coq-elpi"; 29 34 owner = "LPCIC"; ··· 81 86 82 87 mlPlugin = true; 83 88 useDuneifVersion = v: lib.versions.isGe "2.2.0" v || v == "dev"; 84 - propagatedBuildInputs = [ 85 - coq.ocamlPackages.findlib 86 - elpi 87 - stdlib 88 - ]; 89 + 90 + propagatedBuildInputs = propagatedBuildInputs_wo_elpi ++ [ elpi ]; 89 91 90 92 preConfigure = '' 91 93 make elpi/dune || true ··· 96 98 maintainers = [ lib.maintainers.cohencyril ]; 97 99 license = lib.licenses.lgpl21Plus; 98 100 }; 99 - }).overrideAttrs 101 + }; 102 + patched-derivation1 = derivation.overrideAttrs 103 + ( 104 + o: 105 + lib.optionalAttrs (o ? elpi-version) 106 + { 107 + propagatedBuildInputs = propagatedBuildInputs_wo_elpi ++ [ 108 + (coq.ocamlPackages.elpi.override { version = o.elpi-version; }) 109 + ]; 110 + } 111 + ); 112 + patched-derivation2 = patched-derivation1.overrideAttrs 100 113 ( 101 114 o: 102 115 lib.optionalAttrs (o.version != null && (o.version == "dev" || lib.versions.isGe "2.2.0" o.version)) 103 116 { 104 117 propagatedBuildInputs = o.propagatedBuildInputs ++ [ coq.ocamlPackages.ppx_optcomp ]; 105 118 } 106 - ) 119 + ); 120 + in patched-derivation2