summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvan Martin <martine@danga.com>2010-12-26 20:46:59 (GMT)
committerEvan Martin <martine@danga.com>2010-12-26 20:46:59 (GMT)
commita1b5f6bfffa78b4689f172cf3d50416799798153 (patch)
tree71aa225a2d43b49d4e41bed924ed6e96a2a9b300
parent53fc63501dab3c40355f6a66cc712dd50081abfd (diff)
downloadNinja-a1b5f6bfffa78b4689f172cf3d50416799798153.zip
Ninja-a1b5f6bfffa78b4689f172cf3d50416799798153.tar.gz
Ninja-a1b5f6bfffa78b4689f172cf3d50416799798153.tar.bz2
move buildlog to main driver
-rw-r--r--src/build.cc8
-rw-r--r--src/build.h3
-rw-r--r--src/ninja.cc6
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)) {