From 6831ba38d101f4bd9c7e39da511fde4117db97ad Mon Sep 17 00:00:00 2001 From: Evan Martin Date: Fri, 7 Jan 2011 13:58:28 -0800 Subject: [PATCH] state holds build log, not config --- src/build.cc | 2 +- src/build.h | 3 +-- src/ninja.cc | 6 ++---- src/ninja.h | 1 + src/ninja_jumble.cc | 5 ++++- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/build.cc b/src/build.cc index 0607b24..3483848 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_ = config.build_log; + log_ = state->build_log_; } Node* Builder::AddTarget(const string& name, string* err) { diff --git a/src/build.h b/src/build.h index 4d08f70..f4b8d0c 100644 --- a/src/build.h +++ b/src/build.h @@ -58,7 +58,7 @@ struct CommandRunner { }; struct BuildConfig { - BuildConfig() : verbosity(NORMAL), dry_run(false), build_log(NULL) {} + BuildConfig() : verbosity(NORMAL), dry_run(false) {} enum Verbosity { NORMAL, @@ -67,7 +67,6 @@ struct BuildConfig { }; Verbosity verbosity; bool dry_run; - struct BuildLog* build_log; }; struct Builder { diff --git a/src/ninja.cc b/src/ninja.cc index a39ff5c..d738008 100644 --- a/src/ninja.cc +++ b/src/ninja.cc @@ -91,17 +91,15 @@ int main(int argc, char** argv) { } const char* kLogPath = "ninja_log"; - BuildLog log; - if (!log.Load(kLogPath, &err)) { + if (!state.build_log_->Load(kLogPath, &err)) { fprintf(stderr, "error loading build log: %s\n", err.c_str()); return 1; } - if (!log.OpenForWrite(kLogPath, &err)) { + if (!state.build_log_->OpenForWrite(kLogPath, &err)) { fprintf(stderr, "error opening build log: %s\n", err.c_str()); return 1; } - config.build_log = &log; Builder builder(&state, config); for (int i = 0; i < argc; ++i) { diff --git a/src/ninja.h b/src/ninja.h index fb0b7fb..3ece1ab 100644 --- a/src/ninja.h +++ b/src/ninja.h @@ -157,6 +157,7 @@ struct State { map rules_; vector edges_; BindingEnv bindings_; + struct BuildLog* build_log_; static const Rule kPhonyRule; }; diff --git a/src/ninja_jumble.cc b/src/ninja_jumble.cc index b0e60b1..66cfd6a 100644 --- a/src/ninja_jumble.cc +++ b/src/ninja_jumble.cc @@ -3,6 +3,8 @@ #include "ninja.h" +#include "build_log.h" + #include #include #include @@ -294,8 +296,9 @@ void Edge::Dump() { const Rule State::kPhonyRule("phony"); -State::State() { +State::State() : build_log_(NULL) { AddRule(&kPhonyRule); + build_log_ = new BuildLog; } const Rule* State::LookupRule(const string& rule_name) { -- 2.7.4