Fixing the cross build stdenv adapter so it tolerates buildInputs with 'null' elements.
svn path=/nixpkgs/trunk/; revision=20381
This commit is contained in:
parent
27b8b6cc66
commit
8a080a699e
@ -129,12 +129,15 @@ rec {
|
|||||||
# *BuildInputs exists temporarily as another name for
|
# *BuildInputs exists temporarily as another name for
|
||||||
# *HostInputs.
|
# *HostInputs.
|
||||||
|
|
||||||
getBuildDrv = drv : if (drv ? buildDrv) then drv.buildDrv else drv;
|
# In nixpkgs, sometimes 'null' gets in as a buildInputs element,
|
||||||
|
# and we handle that through isAttrs.
|
||||||
|
getBuildDrv = drv : if (builtins.isAttrs drv && drv ? buildDrv) then drv.buildDrv else drv;
|
||||||
|
getHostDrv = drv : if (builtins.isAttrs drv && drv ? hostDrv) then drv.hostDrv else drv;
|
||||||
buildNativeInputsDrvs = map (getBuildDrv) buildNativeInputs;
|
buildNativeInputsDrvs = map (getBuildDrv) buildNativeInputs;
|
||||||
buildInputsDrvs = map (drv: drv.hostDrv) buildInputs;
|
buildInputsDrvs = map (getHostDrv) buildInputs;
|
||||||
buildInputsDrvsAsBuildInputs = map (getBuildDrv) buildInputs;
|
buildInputsDrvsAsBuildInputs = map (getBuildDrv) buildInputs;
|
||||||
propagatedBuildInputsDrvs = map (drv: drv.hostDrv) (propagatedBuildInputs);
|
propagatedBuildInputsDrvs = map (getHostDrv) (propagatedBuildInputs);
|
||||||
propagatedBuildNativeInputsDrvs = map (drv: drv.buildDrv)
|
propagatedBuildNativeInputsDrvs = map (getBuildDrv)
|
||||||
(propagatedBuildNativeInputs);
|
(propagatedBuildNativeInputs);
|
||||||
|
|
||||||
# The base stdenv already knows that buildNativeInputs and
|
# The base stdenv already knows that buildNativeInputs and
|
||||||
@ -148,7 +151,9 @@ rec {
|
|||||||
hostAsBuildDrv = drv: builtins.unsafeDiscardStringContext
|
hostAsBuildDrv = drv: builtins.unsafeDiscardStringContext
|
||||||
drv.buildDrv.drvPath == builtins.unsafeDiscardStringContext
|
drv.buildDrv.drvPath == builtins.unsafeDiscardStringContext
|
||||||
drv.hostDrv.drvPath;
|
drv.hostDrv.drvPath;
|
||||||
nativeInputsFromBuildInputs = stdenv.lib.filter (hostAsBuildDrv) buildInputs;
|
buildInputsNotNull = stdenv.lib.filter
|
||||||
|
(drv: builtins.isAttrs drv && drv ? buildDrv) buildInputs;
|
||||||
|
nativeInputsFromBuildInputs = stdenv.lib.filter (hostAsBuildDrv) buildInputsNotNull;
|
||||||
|
|
||||||
# We should overwrite the input attributes in hostDrv, to overwrite
|
# We should overwrite the input attributes in hostDrv, to overwrite
|
||||||
# the defaults for only-native builds in the base stdenv
|
# the defaults for only-native builds in the base stdenv
|
||||||
|
Loading…
x
Reference in New Issue
Block a user