summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/build.cc17
-rw-r--r--src/build.h11
-rw-r--r--src/build_test.cc8
-rw-r--r--src/ninja.cc2
4 files changed, 26 insertions, 12 deletions
diff --git a/src/build.cc b/src/build.cc
index c160dc3..dc1fcab 100644
--- a/src/build.cc
+++ b/src/build.cc
@@ -13,12 +13,13 @@ struct BuildStatusLog {
time_t last_update_;
int finished_edges_, total_edges_;
- bool verbose_;
+
+ BuildConfig::Verbosity verbosity_;
};
BuildStatusLog::BuildStatusLog()
: last_update_(time(NULL)), finished_edges_(0), total_edges_(0),
- verbose_(false) {}
+ verbosity_(BuildConfig::NORMAL) {}
void BuildStatusLog::PlanHasTotalEdges(int total) {
total_edges_ = total;
@@ -26,10 +27,12 @@ void BuildStatusLog::PlanHasTotalEdges(int total) {
void BuildStatusLog::BuildEdgeStarted(Edge* edge) {
string desc = edge->GetDescription();
- if (!verbose_ && !desc.empty())
- printf("%s\n", desc.c_str());
- else
- printf("%s\n", edge->EvaluateCommand().c_str());
+ if (verbosity_ != BuildConfig::QUIET) {
+ if (verbosity_ != BuildConfig::VERBOSE && !desc.empty())
+ printf("%s\n", desc.c_str());
+ else
+ printf("%s\n", edge->EvaluateCommand().c_str());
+ }
}
void BuildStatusLog::BuildEdgeFinished(Edge* edge) {
@@ -243,7 +246,7 @@ Builder::Builder(State* state, const BuildConfig& config)
else
command_runner_ = new RealCommandRunner;
log_ = new BuildStatusLog;
- log_->verbose_ = config.verbose;
+ log_->verbosity_ = config.verbosity;
}
Node* Builder::AddTarget(const string& name, string* err) {
diff --git a/src/build.h b/src/build.h
index b79ffae..4574e20 100644
--- a/src/build.h
+++ b/src/build.h
@@ -58,9 +58,14 @@ struct CommandRunner {
};
struct BuildConfig {
- BuildConfig() : verbose(false), dry_run(false) {}
-
- bool verbose;
+ BuildConfig() : verbosity(NORMAL), dry_run(false) {}
+
+ enum Verbosity {
+ NORMAL,
+ QUIET, // No output -- used when testing.
+ VERBOSE
+ };
+ Verbosity verbosity;
bool dry_run;
};
diff --git a/src/build_test.cc b/src/build_test.cc
index b8f1887..b2c4d76 100644
--- a/src/build_test.cc
+++ b/src/build_test.cc
@@ -160,7 +160,7 @@ TEST_F(PlanTest, DependencyCycle) {
struct BuildTest : public StateTestWithBuiltinRules,
public CommandRunner,
public DiskInterface {
- BuildTest() : config_(), builder_(&state_, config_), now_(1),
+ BuildTest() : config_(MakeConfig()), builder_(&state_, config_), now_(1),
last_command_(NULL) {
builder_.disk_interface_ = this;
builder_.command_runner_ = this;
@@ -197,6 +197,12 @@ struct BuildTest : public StateTestWithBuiltinRules,
return "";
}
+ BuildConfig MakeConfig() {
+ BuildConfig config;
+ config.verbosity = BuildConfig::QUIET;
+ return config;
+ }
+
BuildConfig config_;
Builder builder_;
int now_;
diff --git a/src/ninja.cc b/src/ninja.cc
index 3c09bcd..8376d9a 100644
--- a/src/ninja.cc
+++ b/src/ninja.cc
@@ -49,7 +49,7 @@ int main(int argc, char** argv) {
config.dry_run = true;
break;
case 'v':
- config.verbose = true;
+ config.verbosity = BuildConfig::VERBOSE;
break;
case 'h':
default: