aboutsummaryrefslogtreecommitdiff
path: root/dep.cc
diff options
context:
space:
mode:
authorDan Willemsen <dwillemsen@google.com>2016-11-04 16:57:57 -0700
committerDan Willemsen <dwillemsen@google.com>2016-11-05 13:05:48 -0700
commit2f75ffadfbd550b2efd68816c33918c86554ed4b (patch)
tree6fe8fea02b2d7fc96bdb0be256ce767ce471ef50 /dep.cc
parent69fed2db6db59584db323400580fa0aadd7e4609 (diff)
Allow rules to specify custom ninja pools
Setting .KATI_NINJA_POOL as a rule variable will set the corresponding pool variable in the ninja file. There's no way to define custom pools in Kati, Android is planning on scaling the pool depth in a parent ninja file without re-running Kati.
Diffstat (limited to 'dep.cc')
-rw-r--r--dep.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/dep.cc b/dep.cc
index 4bdf9ab..4aebae0 100644
--- a/dep.cc
+++ b/dep.cc
@@ -231,6 +231,7 @@ DepNode::DepNode(Symbol o, bool p, bool r)
is_restat(r),
rule_vars(NULL),
depfile_var(NULL),
+ ninja_pool_var(NULL),
output_pattern(Symbol::IsUninitialized()) {
g_dep_node_pool->push_back(this);
}
@@ -244,7 +245,8 @@ class DepBuilder {
rule_vars_(rule_vars),
implicit_rules_(new RuleTrie()),
first_rule_(Symbol::IsUninitialized{}),
- depfile_var_name_(Intern(".KATI_DEPFILE")) {
+ depfile_var_name_(Intern(".KATI_DEPFILE")),
+ ninja_pool_var_name_(Intern(".KATI_NINJA_POOL")) {
ScopedTimeReporter tr("make dep (populate)");
PopulateRules(rules);
// TODO?
@@ -607,6 +609,8 @@ class DepBuilder {
if (name == depfile_var_name_) {
n->depfile_var = new_var;
+ } else if (name == ninja_pool_var_name_) {
+ n->ninja_pool_var = new_var;
} else {
sv.emplace_back(new ScopedVar(cur_rule_vars_.get(), name, new_var));
}
@@ -651,6 +655,7 @@ class DepBuilder {
unordered_set<Symbol> phony_;
unordered_set<Symbol> restat_;
Symbol depfile_var_name_;
+ Symbol ninja_pool_var_name_;
};
void MakeDep(Evaluator* ev,