diff options
| author | Dan Willemsen <dwillemsen@google.com> | 2019-05-28 18:12:34 -0700 |
|---|---|---|
| committer | Dan Willemsen <dwillemsen@google.com> | 2020-01-06 14:24:53 -0800 |
| commit | 296665b60e92dd80e9313c2136026250edf824fc (patch) | |
| tree | 6869d27b0bbf37fc0e2c11a46d16ac21e6e4e710 | |
| parent | 577b7f24db7cc3a76213fb5c42e512c17ad326b3 (diff) | |
| download | platform_build_kati-296665b60e92dd80e9313c2136026250edf824fc.tar.gz platform_build_kati-296665b60e92dd80e9313c2136026250edf824fc.tar.bz2 platform_build_kati-296665b60e92dd80e9313c2136026250edf824fc.zip | |
Implement "phony_output" feature in ninja
Specific to the Android fork of ninja, see:
https://android-review.googlesource.com/c/platform/external/ninja/+/1200345
Test: inspect ninja file
Change-Id: I2a1ff209853de1caa71f311a37815b89fa7f75f7
| -rw-r--r-- | flags.cc | 2 | ||||
| -rw-r--r-- | flags.h | 1 | ||||
| -rw-r--r-- | ninja.cc | 9 |
3 files changed, 10 insertions, 2 deletions
@@ -106,6 +106,8 @@ void Flags::Parse(int argc, char** argv) { no_builtin_rules = true; } else if (!strcmp(arg, "--no_ninja_prelude")) { no_ninja_prelude = true; + } else if (!strcmp(arg, "--use_ninja_phony_output")) { + use_ninja_phony_output = true; } else if (!strcmp(arg, "--werror_find_emulator")) { werror_find_emulator = true; } else if (!strcmp(arg, "--werror_overriding_commands")) { @@ -43,6 +43,7 @@ struct Flags { bool color_warnings; bool no_builtin_rules; bool no_ninja_prelude; + bool use_ninja_phony_output; bool werror_find_emulator; bool werror_overriding_commands; bool warn_implicit_rules; @@ -557,7 +557,7 @@ class NinjaGenerator { } *o << ": " << rule_name; vector<Symbol> order_onlys; - if (node->is_phony) { + if (node->is_phony && !g_flags.use_ninja_phony_output) { *o << " _kati_always_build_"; } for (auto const& d : node->deps) { @@ -585,6 +585,9 @@ class NinjaGenerator { } else if (use_local_pool) { *o << " pool = local_pool\n"; } + if (node->is_phony && g_flags.use_ninja_phony_output) { + *o << " phony_output = true\n"; + } if (node->is_default_target) { unique_lock<mutex> lock(mu_); default_target_ = node; @@ -618,7 +621,9 @@ class NinjaGenerator { fprintf(fp_, "pool local_pool\n"); fprintf(fp_, " depth = %d\n\n", g_flags.num_jobs); - fprintf(fp_, "build _kati_always_build_: phony\n\n"); + if (!g_flags.use_ninja_phony_output) { + fprintf(fp_, "build _kati_always_build_: phony\n\n"); + } } unique_ptr<ThreadPool> tp(NewThreadPool(g_flags.num_jobs)); |
