@@ -7,32 +7,13 @@ let
77 echo "${field}: ${lib.concatStringsSep " " xs}" >> $out/cabal.config
88 '';
99
10− ## packageComponentsOfType :: Package -> Type String -> [Component]
11− packageComponentsOfType = pkg: type:
12− (optionals (hasAttr type pkg.components) (lib.mapAttrsToList (n: c: c) pkg.components."${type}"));
13− ## packageComponents :: Package -> [Component]
14− packageComponents = pkg:
15− optionals (hasAttr "library" pkg.components) [ pkg.components.library ]
16− ++ concatMap (packageComponentsOfType pkg) ["sublibs" "exes" "foreignlibs" "tests" "benchmarks"];
17− ## packageLibComponents :: Package -> [Component]
18− packageLibComponents = pkg:
19− optionals (hasAttr "library" pkg.components) [ pkg.components.library ]
20− ++ concatMap (packageComponentsOfType pkg) ["sublibs"];
2110 ## packageHasLib :: Package -> Bool
2211 packageHasLib = p: hasAttr "library" p.components;
23− ## packageKeyComponent :: Package -> Component
24− packageKeyComponent = pkg:
25− let comps = packageLibComponents pkg;
26− first = elemAt comps 0;
27− r = if length comps == 0
28− then throw "No components in package ${pkg.identifier.name}."
29− else first; in
30− r;
3112 ## flatLibDepends :: Component -> [Package]
3213 flatLibDepends =
3314 component:
3415 let
35− makePairs = map (p: rec { key="${val.name}"; val=packageKeyComponent p; });
16+ makePairs = map (p: rec { key="${val.name}"; val=p.components.library; });
3617 closure = builtins.genericClosure {
3718 startSet = makePairs (filter packageHasLib component.depends);
3819 operator = {val,...}: makePairs val.config.depends;
@@ -93,7 +74,7 @@ in { identifier, component, fullName, flags ? {} }:
9374 cat > $out/ghc-environment <<EOF
9475 package-db $out/package.conf.d
9576 EOF
96− ${lib.concatMapStringsSep "\n" (p: envDep "--package-db ${packageKeyComponent p}/package.conf.d" p.identifier.name)
77+ ${lib.concatMapStringsSep "\n" (p: envDep "--package-db ${p.components.library}/package.conf.d" p.identifier.name)
9778 (filter packageHasLib component.depends)}
9879 ${lib.concatMapStringsSep "\n" (envDep "") (lib.remove "ghc" nonReinstallablePkgs)}
9980