More random cleanup

This commit is contained in:
Eelco Dolstra 2012-12-28 19:37:42 +01:00
parent 22ba03c123
commit dcdef5a0fe

View file

@ -132,12 +132,11 @@ rec {
# and we handle that through isAttrs. # and we handle that through isAttrs.
getBuildDrv = drv: drv.nativeDrv or drv; getBuildDrv = drv: drv.nativeDrv or drv;
getHostDrv = drv: drv.crossDrv or drv; getHostDrv = drv: drv.crossDrv or drv;
nativeBuildInputsDrvs = map (getBuildDrv) nativeBuildInputs; nativeBuildInputsDrvs = map getBuildDrv nativeBuildInputs;
buildInputsDrvs = map (getHostDrv) buildInputs; buildInputsDrvs = map getHostDrv buildInputs;
buildInputsDrvsAsBuildInputs = map (getBuildDrv) buildInputs; buildInputsDrvsAsBuildInputs = map getBuildDrv buildInputs;
propagatedBuildInputsDrvs = map (getHostDrv) (propagatedBuildInputs); propagatedBuildInputsDrvs = map getHostDrv propagatedBuildInputs;
propagatedNativeBuildInputsDrvs = map (getBuildDrv) propagatedNativeBuildInputsDrvs = map getBuildDrv propagatedNativeBuildInputs;
(propagatedNativeBuildInputs);
# The base stdenv already knows that nativeBuildInputs and # The base stdenv already knows that nativeBuildInputs and
# buildInputs should be built with the usual gcc-wrapper # buildInputs should be built with the usual gcc-wrapper
@ -147,16 +146,16 @@ rec {
# Temporary expression until the cross_renaming, to handle the # Temporary expression until the cross_renaming, to handle the
# case of pkgconfig given as buildInput, but to be used as # case of pkgconfig given as buildInput, but to be used as
# nativeBuildInput. # nativeBuildInput.
hostAsBuildDrv = drv: builtins.unsafeDiscardStringContext hostAsBuildDrv = drv:
drv.nativeDrv.drvPath == builtins.unsafeDiscardStringContext builtins.unsafeDiscardStringContext drv.nativeDrv.drvPath
drv.crossDrv.drvPath; == builtins.unsafeDiscardStringContext drv.crossDrv.drvPath;
buildInputsNotNull = stdenv.lib.filter buildInputsNotNull = stdenv.lib.filter
(drv: builtins.isAttrs drv && drv ? nativeDrv) buildInputs; (drv: builtins.isAttrs drv && drv ? nativeDrv) buildInputs;
nativeInputsFromBuildInputs = stdenv.lib.filter (hostAsBuildDrv) buildInputsNotNull; nativeInputsFromBuildInputs = stdenv.lib.filter hostAsBuildDrv buildInputsNotNull;
# We should overwrite the input attributes in crossDrv, to overwrite # We should overwrite the input attributes in crossDrv, to overwrite
# the defaults for only-native builds in the base stdenv # the defaults for only-native builds in the base stdenv
crossDrv = if (cross == null) then nativeDrv else crossDrv = if cross == null then nativeDrv else
stdenv.mkDerivation (args // { stdenv.mkDerivation (args // {
name = name + "-" + cross.config; name = name + "-" + cross.config;
nativeBuildInputs = nativeBuildInputsDrvs nativeBuildInputs = nativeBuildInputsDrvs
@ -169,14 +168,13 @@ rec {
# any library needed to link the program dynamically at # any library needed to link the program dynamically at
# loader time. ld(1) explains it. # loader time. ld(1) explains it.
buildInputs = []; buildInputs = [];
propagatedBuildInputs = propagatedBuildInputsDrvs ++ propagatedBuildInputs = propagatedBuildInputsDrvs ++ buildInputsDrvs;
buildInputsDrvs;
propagatedNativeBuildInputs = propagatedNativeBuildInputsDrvs; propagatedNativeBuildInputs = propagatedNativeBuildInputsDrvs;
crossConfig = cross.config; crossConfig = cross.config;
} // args.crossAttrs or {}); } // args.crossAttrs or {});
in nativeDrv // { in nativeDrv // {
inherit crossDrv nativeDrv; inherit crossDrv nativeDrv;
}; };
} // { } // {
inherit cross gccCross binutilsCross; inherit cross gccCross binutilsCross;