diff options
| author | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-07-18 12:37:02 +0900 |
|---|---|---|
| committer | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-07-24 07:43:27 +0900 |
| commit | 998ccf798382a64d365b73a7f96884a14fc7e21a (patch) | |
| tree | 409211183915524c7cd17b80a52c5509348baba8 /main.cc | |
| parent | 9c2f98c2ea4491d564ca35cd0fe895264d5597d8 (diff) | |
[C++] Add a rule for ninja file regeneration
Diffstat (limited to 'main.cc')
| -rw-r--r-- | main.cc | 18 |
1 files changed, 15 insertions, 3 deletions
@@ -105,6 +105,10 @@ static void ParseCommandLine(int argc, char* argv[], "--ninja_dir", argv, &i, &g_ninja_dir)) { } else if (!strcmp(arg, "--use_find_emulator")) { g_use_find_emulator = true; + } else if (!strcmp(arg, "--gen_regen_rule")) { + // TODO: Make this default once we have removed unnecessary + // command line change from Android build. + g_gen_regen_rule = true; } else if (ParseCommandLineOptionWithArg( "--goma_dir", argv, &i, &g_goma_dir)) { } else if (ParseCommandLineOptionWithArg( @@ -209,7 +213,8 @@ static void FillDefaultVars(const vector<StringPiece>& cl_vars, Vars* vars) { } static int Run(const vector<Symbol>& targets, - const vector<StringPiece>& cl_vars) { + const vector<StringPiece>& cl_vars, + const string& orig_args) { MakefileCacheManager* cache_mgr = NewMakefileCacheManager(); Vars* vars = new Vars(); @@ -262,7 +267,8 @@ static int Run(const vector<Symbol>& targets, if (g_generate_ninja) { ScopedTimeReporter tr("generate ninja time"); - GenerateNinja(g_ninja_suffix, g_ninja_dir, nodes, ev, !targets.empty()); + GenerateNinja(g_ninja_suffix, g_ninja_dir, nodes, ev, !targets.empty(), + orig_args); return 0; } @@ -282,13 +288,19 @@ static int Run(const vector<Symbol>& targets, int main(int argc, char* argv[]) { Init(); + string orig_args; + for (int i = 0; i < argc; i++) { + if (i) + orig_args += ' '; + orig_args += argv[i]; + } vector<Symbol> targets; vector<StringPiece> cl_vars; ParseCommandLine(argc, argv, &targets, &cl_vars); // This depends on command line flags. if (g_use_find_emulator) InitFindEmulator(); - int r = Run(targets, cl_vars); + int r = Run(targets, cl_vars, orig_args); Quit(); return r; } |
