diff options
author | Evan Martin <martine@danga.com> | 2011-01-07 21:58:28 (GMT) |
---|---|---|
committer | Evan Martin <martine@danga.com> | 2011-01-07 21:58:28 (GMT) |
commit | 6831ba38d101f4bd9c7e39da511fde4117db97ad (patch) | |
tree | 211d91df5c7806dbcc4ab7c33600ed37f6c2955d | |
parent | 681de18033236071e822ca709d912d32cd4b2f83 (diff) | |
download | Ninja-6831ba38d101f4bd9c7e39da511fde4117db97ad.zip Ninja-6831ba38d101f4bd9c7e39da511fde4117db97ad.tar.gz Ninja-6831ba38d101f4bd9c7e39da511fde4117db97ad.tar.bz2 |
state holds build log, not config
-rw-r--r-- | src/build.cc | 2 | ||||
-rw-r--r-- | src/build.h | 3 | ||||
-rw-r--r-- | src/ninja.cc | 6 | ||||
-rw-r--r-- | src/ninja.h | 1 | ||||
-rw-r--r-- | 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<string, const Rule*> rules_; vector<Edge*> 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 <errno.h> #include <sys/stat.h> #include <stdio.h> @@ -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) { |