stdenv: implement config.checkMetaRecursively
This option makes `meta.evaluate` into a close approximation of the result of evaluating `.outPath` by checking all the dependencies recursively at a cost of 2x slowdown. Note that actually evaluating `.outPath` costs some 5x-7x more because `.outPath` also computes all the hashes.
This commit is contained in:
parent
ecd3990cd4
commit
eaee2a1199
@ -72,6 +72,9 @@ rec {
|
||||
inherit erroneousHardeningFlags hardeningDisable hardeningEnable supportedHardeningFlags;
|
||||
})
|
||||
else let
|
||||
references = nativeBuildInputs ++ buildInputs
|
||||
++ propagatedNativeBuildInputs ++ propagatedBuildInputs;
|
||||
|
||||
dependencies = map (map lib.chooseDevOutputs) [
|
||||
[
|
||||
(map (drv: drv.__spliced.buildBuild or drv) depsBuildBuild)
|
||||
@ -213,7 +216,10 @@ rec {
|
||||
position = pos.file + ":" + toString pos.line;
|
||||
# Expose the result of the checks for everyone to see.
|
||||
} // {
|
||||
evaluates = validity.valid;
|
||||
evaluates = validity.valid
|
||||
&& (if config.checkMetaRecursively or false
|
||||
then lib.all (d: d.meta.evaluates or true) references
|
||||
else true);
|
||||
};
|
||||
|
||||
in
|
||||
|
Loading…
Reference in New Issue
Block a user