diff options
author | Evan Martin <martine@danga.com> | 2010-12-26 20:46:59 (GMT) |
---|---|---|
committer | Evan Martin <martine@danga.com> | 2010-12-26 20:46:59 (GMT) |
commit | a1b5f6bfffa78b4689f172cf3d50416799798153 (patch) | |
tree | 71aa225a2d43b49d4e41bed924ed6e96a2a9b300 | |
parent | 53fc63501dab3c40355f6a66cc712dd50081abfd (diff) | |
download | Ninja-a1b5f6bfffa78b4689f172cf3d50416799798153.zip Ninja-a1b5f6bfffa78b4689f172cf3d50416799798153.tar.gz Ninja-a1b5f6bfffa78b4689f172cf3d50416799798153.tar.bz2 |
move buildlog to main driver
-rw-r--r-- | src/build.cc | 8 | ||||
-rw-r--r-- | src/build.h | 3 | ||||
-rw-r--r-- | src/ninja.cc | 6 |
3 files changed, 11 insertions, 6 deletions
diff --git a/src/build.cc b/src/build.cc index 4d561fb..0607b24 100644 --- a/src/build.cc +++ b/src/build.cc @@ -248,7 +248,7 @@ Builder::Builder(State* state, const BuildConfig& config) command_runner_ = new RealCommandRunner; status_ = new BuildStatus; status_->verbosity_ = config.verbosity; - log_ = new BuildLog; + log_ = config.build_log; } Node* Builder::AddTarget(const string& name, string* err) { @@ -276,9 +276,6 @@ 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()) { @@ -340,5 +337,6 @@ void Builder::FinishEdge(Edge* edge) { } plan_.EdgeFinished(edge); status_->BuildEdgeFinished(edge); - log_->RecordCommand(edge, 0); // XXX get edge timing. + if (log_) + log_->RecordCommand(edge, 0); // XXX get edge timing. } diff --git a/src/build.h b/src/build.h index f4b8d0c..4d08f70 100644 --- a/src/build.h +++ b/src/build.h @@ -58,7 +58,7 @@ struct CommandRunner { }; struct BuildConfig { - BuildConfig() : verbosity(NORMAL), dry_run(false) {} + BuildConfig() : verbosity(NORMAL), dry_run(false), build_log(NULL) {} enum Verbosity { NORMAL, @@ -67,6 +67,7 @@ struct BuildConfig { }; Verbosity verbosity; bool dry_run; + struct BuildLog* build_log; }; struct Builder { diff --git a/src/ninja.cc b/src/ninja.cc index 5392fb3..f88e2b9 100644 --- a/src/ninja.cc +++ b/src/ninja.cc @@ -5,6 +5,7 @@ #include <stdio.h> #include "build.h" +#include "build_log.h" #include "graphviz.h" #include "parsers.h" @@ -89,6 +90,11 @@ int main(int argc, char** argv) { return 0; } + BuildLog log; + if (!log.OpenForWrite("ninja_log", &err)) + return 1; + config.build_log = &log; + Builder builder(&state, config); for (int i = 0; i < argc; ++i) { if (!builder.AddTarget(argv[i], &err)) { |