diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2021-06-23 10:33:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-23 10:33:25 +0200 |
commit | 4a5aa1dbf625af795b19badd66c0a0891c9d5b49 (patch) | |
tree | 0750ed484406862630c10a64fdc15bf7d93bb230 /src | |
parent | 2ab7c821f310a5b2ccabfe8da3212882825d8a00 (diff) | |
parent | a22755721b51949dbf03bc1eb156d6f37dc10bac (diff) |
Merge pull request #4838 from NixOS/ca/recursively-substitute-realisations
Recursively substitute the realisations
Diffstat (limited to 'src')
-rw-r--r-- | src/libstore/build/drv-output-substitution-goal.cc | 6 | ||||
-rw-r--r-- | src/libutil/comparator.hh | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/libstore/build/drv-output-substitution-goal.cc b/src/libstore/build/drv-output-substitution-goal.cc index a5ac4c49d..1703e845d 100644 --- a/src/libstore/build/drv-output-substitution-goal.cc +++ b/src/libstore/build/drv-output-substitution-goal.cc @@ -53,6 +53,12 @@ void DrvOutputSubstitutionGoal::tryNext() return; } + for (const auto & [drvOutputDep, _] : outputInfo->dependentRealisations) { + if (drvOutputDep != id) { + addWaitee(worker.makeDrvOutputSubstitutionGoal(drvOutputDep)); + } + } + addWaitee(worker.makePathSubstitutionGoal(outputInfo->outPath)); if (waitees.empty()) outPathValid(); diff --git a/src/libutil/comparator.hh b/src/libutil/comparator.hh index 0315dc506..eecd5b819 100644 --- a/src/libutil/comparator.hh +++ b/src/libutil/comparator.hh @@ -25,6 +25,8 @@ } #define GENERATE_EQUAL(args...) GENERATE_ONE_CMP(==, args) #define GENERATE_LEQ(args...) GENERATE_ONE_CMP(<, args) +#define GENERATE_NEQ(args...) GENERATE_ONE_CMP(!=, args) #define GENERATE_CMP(args...) \ GENERATE_EQUAL(args) \ - GENERATE_LEQ(args) + GENERATE_LEQ(args) \ + GENERATE_NEQ(args) |