forked from mirrors/nixpkgs
stdenv: refactor (no change in semantics)
This just moves some expressions around in preparation to further changes.
This commit is contained in:
parent
74f55017d2
commit
7fdf18e892
|
@ -290,15 +290,15 @@ let
|
|||
in [ nativeBuildInputs buildInputs ];
|
||||
|
||||
propagatedDependencies' = map lib.chooseDevOutputs propagatedDependencies;
|
||||
in
|
||||
|
||||
# Throw an error if trying to evaluate an non-valid derivation
|
||||
assert let v = checkValidity attrs;
|
||||
validityCondition =
|
||||
let v = checkValidity attrs;
|
||||
in if !v.valid
|
||||
then throwEvalHelp (removeAttrs v ["valid"])
|
||||
else true;
|
||||
|
||||
lib.addPassthru (derivation (
|
||||
derivationArg =
|
||||
(removeAttrs attrs
|
||||
["meta" "passthru" "crossAttrs" "pos"
|
||||
"__impureHostDeps" "__propagatedImpureHostDeps"
|
||||
|
@ -343,9 +343,8 @@ let
|
|||
__propagatedImpureHostDeps = computedPropagatedImpureHostDeps ++ __propagatedImpureHostDeps;
|
||||
} // (if outputs' != [ "out" ] then {
|
||||
outputs = outputs';
|
||||
} else { })))) (
|
||||
{
|
||||
overrideAttrs = f: mkDerivation (attrs // (f attrs));
|
||||
} else { }));
|
||||
|
||||
# The meta attribute is passed in the resulting attribute set,
|
||||
# but it's not part of the actual derivation, i.e., it's not
|
||||
# passed to the builder and is not a dependency. But since we
|
||||
|
@ -363,12 +362,20 @@ let
|
|||
hasOutput = out: builtins.elem out outs;
|
||||
in [( lib.findFirst hasOutput null (["bin" "out"] ++ outs) )];
|
||||
}
|
||||
// meta
|
||||
// attrs.meta or {}
|
||||
# Fill `meta.position` to identify the source location of the package.
|
||||
// lib.optionalAttrs (pos' != null)
|
||||
{ position = pos'.file + ":" + toString pos'.line; }
|
||||
;
|
||||
inherit passthru;
|
||||
|
||||
in
|
||||
|
||||
assert validityCondition;
|
||||
|
||||
lib.addPassthru (derivation derivationArg) (
|
||||
{
|
||||
overrideAttrs = f: mkDerivation (attrs // (f attrs));
|
||||
inherit meta passthru;
|
||||
} //
|
||||
# Pass through extra attributes that are not inputs, but
|
||||
# should be made available to Nix expressions using the
|
||||
|
|
Loading…
Reference in a new issue