diff options
| author | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-09-29 13:26:45 +0900 |
|---|---|---|
| committer | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-09-29 13:26:45 +0900 |
| commit | 9c5e60c3efd3198ad803c83cc6d6e2391d38edd6 (patch) | |
| tree | ffb69c91362a7e86d1b592df2ea497a603846845 | |
| parent | f9869fcb895d9840c779e007a8d618cadf1ca4a6 (diff) | |
| download | platform_build_kati-9c5e60c3efd3198ad803c83cc6d6e2391d38edd6.tar.gz platform_build_kati-9c5e60c3efd3198ad803c83cc6d6e2391d38edd6.tar.bz2 platform_build_kati-9c5e60c3efd3198ad803c83cc6d6e2391d38edd6.zip | |
[C++] Always emit default statement in ninja
Otherwise, build.ninja generated with --gen_all_(phony_|)targets
runs unnecessary build targets if no target is specified.
| -rw-r--r-- | main.cc | 2 | ||||
| -rw-r--r-- | ninja.cc | 20 | ||||
| -rw-r--r-- | ninja.h | 1 |
3 files changed, 13 insertions, 10 deletions
@@ -194,7 +194,7 @@ static int Run(const vector<Symbol>& targets, if (g_flags.generate_ninja) { ScopedTimeReporter tr("generate ninja time"); - GenerateNinja(nodes, ev, !targets.empty(), orig_args, start_time); + GenerateNinja(nodes, ev, orig_args, start_time); return 0; } @@ -183,10 +183,9 @@ class NinjaGenerator { } void Generate(const vector<DepNode*>& nodes, - bool build_all_targets, const string& orig_args) { unlink(GetStampFilename().c_str()); - GenerateNinja(nodes, build_all_targets, orig_args); + GenerateNinja(nodes, orig_args); GenerateShell(); GenerateStamp(orig_args); } @@ -554,7 +553,6 @@ class NinjaGenerator { } void GenerateNinja(const vector<DepNode*>& nodes, - bool build_all_targets, const string& orig_args) { fp_ = fopen(GetNinjaFilename().c_str(), "wb"); if (fp_ == NULL) @@ -591,11 +589,18 @@ class NinjaGenerator { used_envs_.emplace(e.str(), val.as_string()); } - if (!build_all_targets) { + string default_targets; + if (g_flags.targets.empty()) { CHECK(!nodes.empty()); - fprintf(fp_, "\ndefault %s\n", - EscapeBuildTarget(nodes.front()->output).c_str()); + default_targets = EscapeBuildTarget(nodes.front()->output); + } else { + for (Symbol s : g_flags.targets) { + if (!default_targets.empty()) + default_targets += ' '; + default_targets += EscapeBuildTarget(s); + } } + fprintf(fp_, "\ndefault %s\n", default_targets.c_str()); fclose(fp_); } @@ -726,11 +731,10 @@ class NinjaGenerator { void GenerateNinja(const vector<DepNode*>& nodes, Evaluator* ev, - bool build_all_targets, const string& orig_args, double start_time) { NinjaGenerator ng(ev, start_time); - ng.Generate(nodes, build_all_targets, orig_args); + ng.Generate(nodes, orig_args); } static bool ShouldIgnoreDirty(StringPiece s) { @@ -29,7 +29,6 @@ class Evaluator; void GenerateNinja(const vector<DepNode*>& nodes, Evaluator* ev, - bool build_all_targets, const string& orig_args, double start_time); |
