summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvan Martin <martine@danga.com>2011-01-07 21:58:28 (GMT)
committerEvan Martin <martine@danga.com>2011-01-07 21:58:28 (GMT)
commit6831ba38d101f4bd9c7e39da511fde4117db97ad (patch)
tree211d91df5c7806dbcc4ab7c33600ed37f6c2955d
parent681de18033236071e822ca709d912d32cd4b2f83 (diff)
downloadNinja-6831ba38d101f4bd9c7e39da511fde4117db97ad.zip
Ninja-6831ba38d101f4bd9c7e39da511fde4117db97ad.tar.gz
Ninja-6831ba38d101f4bd9c7e39da511fde4117db97ad.tar.bz2
state holds build log, not config
-rw-r--r--src/build.cc2
-rw-r--r--src/build.h3
-rw-r--r--src/ninja.cc6
-rw-r--r--src/ninja.h1
-rw-r--r--src/ninja_jumble.cc5
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) {