summaryrefslogtreecommitdiffstats
path: root/src/build.cc
diff options
context:
space:
mode:
authorEvan Martin <martine@danga.com>2012-09-04 22:39:04 (GMT)
committerEvan Martin <martine@danga.com>2012-09-04 22:39:04 (GMT)
commit1e11c8a6bd119025efd8725370ffa42354f92f88 (patch)
tree53adfbd3d97d14a84bc9e0657e85569d0d547a11 /src/build.cc
parent703dcffd6d2e4b64411eb44d3025093abfd1d737 (diff)
downloadNinja-1e11c8a6bd119025efd8725370ffa42354f92f88.zip
Ninja-1e11c8a6bd119025efd8725370ffa42354f92f88.tar.gz
Ninja-1e11c8a6bd119025efd8725370ffa42354f92f88.tar.bz2
move BuildLog to DependencyScan
The build log is needed in computing whether an edge is dirty, so I think it belongs here. (It's a bit weird that Builder needs to reach into it to record completed commands, maybe it will become cleaner with more thought.)
Diffstat (limited to 'src/build.cc')
-rw-r--r--src/build.cc9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/build.cc b/src/build.cc
index 4102209..efc05b0 100644
--- a/src/build.cc
+++ b/src/build.cc
@@ -554,11 +554,10 @@ struct DryRunCommandRunner : public CommandRunner {
};
Builder::Builder(State* state, const BuildConfig& config,
- DiskInterface* disk_interface)
+ BuildLog* log, DiskInterface* disk_interface)
: state_(state), config_(config), disk_interface_(disk_interface),
- scan_(state, disk_interface) {
+ scan_(state, log, disk_interface) {
status_ = new BuildStatus(config);
- log_ = state->build_log_;
}
Builder::~Builder() {
@@ -797,7 +796,7 @@ void Builder::FinishEdge(Edge* edge, bool success, const string& output) {
int start_time, end_time;
status_->BuildEdgeFinished(edge, success, output, &start_time, &end_time);
- if (success && log_)
- log_->RecordCommand(edge, start_time, end_time, restat_mtime);
+ if (success && scan_.build_log())
+ scan_.build_log()->RecordCommand(edge, start_time, end_time, restat_mtime);
}