From 53fc63501dab3c40355f6a66cc712dd50081abfd Mon Sep 17 00:00:00 2001 From: Evan Martin Date: Sun, 26 Dec 2010 12:31:12 -0800 Subject: [PATCH] hook up build log --- src/build.cc | 9 ++++++++- src/build.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/build.cc b/src/build.cc index 73f9a86..4d561fb 100644 --- a/src/build.cc +++ b/src/build.cc @@ -2,6 +2,7 @@ #include +#include "build_log.h" #include "ninja.h" #include "subprocess.h" @@ -247,6 +248,7 @@ Builder::Builder(State* state, const BuildConfig& config) command_runner_ = new RealCommandRunner; status_ = new BuildStatus; status_->verbosity_ = config.verbosity; + log_ = new BuildLog; } Node* Builder::AddTarget(const string& name, string* err) { @@ -274,6 +276,9 @@ bool Builder::Build(string* err) { return true; } + if (!log_->OpenForWrite("ninja_log", err)) + return false; + status_->PlanHasTotalEdges(plan_.edge_count()); while (plan_.more_to_do()) { while (command_runner_->CanRunMore()) { @@ -288,7 +293,6 @@ bool Builder::Build(string* err) { if (!StartEdge(edge, err)) return false; - status_->BuildEdgeStarted(edge); } bool success; @@ -307,6 +311,8 @@ bool Builder::Build(string* err) { } bool Builder::StartEdge(Edge* edge, string* err) { + status_->BuildEdgeStarted(edge); + // Create directories necessary for outputs. // XXX: this will block; do we care? for (vector::iterator i = edge->outputs_.begin(); @@ -334,4 +340,5 @@ void Builder::FinishEdge(Edge* edge) { } plan_.EdgeFinished(edge); status_->BuildEdgeFinished(edge); + log_->RecordCommand(edge, 0); // XXX get edge timing. } diff --git a/src/build.h b/src/build.h index d050b0f..f4b8d0c 100644 --- a/src/build.h +++ b/src/build.h @@ -83,6 +83,7 @@ struct Builder { DiskInterface* disk_interface_; CommandRunner* command_runner_; struct BuildStatus* status_; + struct BuildLog* log_; }; #endif // NINJA_BUILD_H_ -- 2.7.4