diff options
author | Jan Niklas Hasse <jhasse@bixense.com> | 2020-01-04 13:31:23 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-04 13:31:23 (GMT) |
commit | 1c5857c37d18a5cf1b7242493c49c6fad02da3a9 (patch) | |
tree | 7ff0e08e4bf2e74626a05492b408995c2543a4a1 /src/build.cc | |
parent | 23a628f3c88a085cf3f98776f438cda9041e3209 (diff) | |
parent | ebbb9e2fdb0746e2125013e29a334efc8c0331b6 (diff) | |
download | Ninja-1c5857c37d18a5cf1b7242493c49c6fad02da3a9.zip Ninja-1c5857c37d18a5cf1b7242493c49c6fad02da3a9.tar.gz Ninja-1c5857c37d18a5cf1b7242493c49c6fad02da3a9.tar.bz2 |
Merge pull request #1534 from mathstuf/remove-depslog-restriction
manifest_parser: remove multi-output depslog restriction
Diffstat (limited to 'src/build.cc')
-rw-r--r-- | src/build.cc | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/build.cc b/src/build.cc index 75671a6..cd8df4e 100644 --- a/src/build.cc +++ b/src/build.cc @@ -1033,14 +1033,16 @@ bool Builder::FinishCommand(CommandRunner::Result* result, string* err) { } if (!deps_type.empty() && !config_.dry_run) { - assert(edge->outputs_.size() == 1 && "should have been rejected by parser"); - Node* out = edge->outputs_[0]; - TimeStamp deps_mtime = disk_interface_->Stat(out->path(), err); - if (deps_mtime == -1) - return false; - if (!scan_.deps_log()->RecordDeps(out, deps_mtime, deps_nodes)) { - *err = string("Error writing to deps log: ") + strerror(errno); - return false; + assert(edge->outputs_.size() >= 1 && "should have been rejected by parser"); + for (std::vector<Node*>::const_iterator o = edge->outputs_.begin(); + o != edge->outputs_.end(); ++o) { + TimeStamp deps_mtime = disk_interface_->Stat((*o)->path(), err); + if (deps_mtime == -1) + return false; + if (!scan_.deps_log()->RecordDeps(*o, deps_mtime, deps_nodes)) { + *err = std::string("Error writing to deps log: ") + strerror(errno); + return false; + } } } return true; |