nix-helpers: c2f6030df8dc750a7ea302d0b8e05cfdff2cd0e6
1: { cabalPlan, cabalPlanToPackages, hackageIndex, haskellPackages }:
2: with {
3: mkCabalPlan = cabalPlan;
4: oldHackageIndex = hackageIndex;
5: oldHaskellPackages = haskellPackages;
6: };
7: { name, src, cabalFile ? "${src}/${name}.cabal", doBench ? false, doCheck ? true
8: , hackageIndex ? oldHackageIndex, haskellPackages ? oldHaskellPackages
9: , cabalPlan ?
10: mkCabalPlan { inherit cabalFile doBench doCheck hackageIndex name; } }:
11: with rec {
12: planPackages = cabalPlanToPackages { inherit cabalPlan haskellPackages; };
13: extendedPackages = planPackages.extend (self: super: {
14: "${name}" = self.callCabal2nix name src
15: # cabalPlanToPackages overrides mkDerivation to disable tests, to prevent
16: # circular dependencies. The original mkDerivation function is kept in an
17: # attribute: if it's present, use it (hence allowing this package's tests)
18: (if self.mkDerivation ? original then {
19: mkDerivation = self.mkDerivation.original;
20: } else
21: { });
22: });
23: };
24: extendedPackages."${name}" // {
25: inherit cabalPlan hackageIndex;
26: haskellPackages = extendedPackages;
27: }
Generated by git2html.