diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2015-06-10 16:17:06 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-07-02 22:52:58 +0200 |
commit | 60bda60fc06135aa97a93301b1a9e2270768f5b3 (patch) | |
tree | c808dbddfc267f0ca070cfe17ea811fc311c2583 | |
parent | 5dfea34048aa8541f20aeb2fbcd163561b609a49 (diff) | |
download | guix-60bda60fc06135aa97a93301b1a9e2270768f5b3.tar.gz |
Export outputPaths function
This is useful for the new hydra-queue-runner.
-rw-r--r-- | nix/libstore/build.cc | 13 | ||||
-rw-r--r-- | nix/libstore/derivations.cc | 9 | ||||
-rw-r--r-- | nix/libstore/derivations.hh | 1 |
3 files changed, 12 insertions, 11 deletions
diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index 7159d7b4c4..9041ae0095 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -1188,15 +1188,6 @@ void DerivationGoal::inputsRealised() } -PathSet outputPaths(const DerivationOutputs & outputs) -{ - PathSet paths; - foreach (DerivationOutputs::const_iterator, i, outputs) - paths.insert(i->second.path); - return paths; -} - - static bool canBuildLocally(const string & platform) { return platform == settings.thisSystem @@ -1248,7 +1239,7 @@ void DerivationGoal::tryToBuild() can't acquire the lock, then continue; hopefully some other goal can start a build, and if not, the main loop will sleep a few seconds and then retry this goal. */ - if (!outputLocks.lockPaths(outputPaths(drv.outputs), "", false)) { + if (!outputLocks.lockPaths(outputPaths(drv), "", false)) { worker.waitForAWhile(shared_from_this()); return; } @@ -1269,7 +1260,7 @@ void DerivationGoal::tryToBuild() return; } - missingPaths = outputPaths(drv.outputs); + missingPaths = outputPaths(drv); if (buildMode != bmCheck) foreach (PathSet::iterator, i, validPaths) missingPaths.erase(*i); diff --git a/nix/libstore/derivations.cc b/nix/libstore/derivations.cc index b452aa2caf..d316f6c7bf 100644 --- a/nix/libstore/derivations.cc +++ b/nix/libstore/derivations.cc @@ -285,4 +285,13 @@ bool wantOutput(const string & output, const std::set<string> & wanted) } +PathSet outputPaths(const Derivation & drv) +{ + PathSet paths; + for (auto & i : drv.outputs) + paths.insert(i.second.path); + return paths; +} + + } diff --git a/nix/libstore/derivations.hh b/nix/libstore/derivations.hh index 04b64dfc88..8d5e4d05d4 100644 --- a/nix/libstore/derivations.hh +++ b/nix/libstore/derivations.hh @@ -89,5 +89,6 @@ Path makeDrvPathWithOutputs(const Path & drvPath, const std::set<string> & outpu bool wantOutput(const string & output, const std::set<string> & wanted); +PathSet outputPaths(const Derivation & drv); } |