aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2016-02-16 19:13:29 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2016-02-16 19:13:29 +0900
commit6ba79646008472dcbefa27e680b6103a04f378fe (patch)
treed5b790f9d3a5e47eb24e07f6b03e014ff9be4383
parent54a3d538985a4e8edb66e6cb64282587713b80cb (diff)
downloadplatform_build_kati-6ba79646008472dcbefa27e680b6103a04f378fe.tar.gz
platform_build_kati-6ba79646008472dcbefa27e680b6103a04f378fe.tar.bz2
platform_build_kati-6ba79646008472dcbefa27e680b6103a04f378fe.zip
[C++] Ignore suppression rules for RCS/SCCS related rules
Kati doesn't have default rules for them.
-rw-r--r--dep.cc17
1 files changed, 16 insertions, 1 deletions
diff --git a/dep.cc b/dep.cc
index faa103d..da31c00 100644
--- a/dep.cc
+++ b/dep.cc
@@ -362,9 +362,24 @@ class DepBuilder {
}
}
+ bool IsIgnorableImplicitRule(const Rule* rule) {
+ // As kati doesn't have RCS/SCCS related default rules, we can
+ // safely ignore suppression for them.
+ if (rule->inputs.size() != 1)
+ return false;
+ if (!rule->order_only_inputs.empty())
+ return false;
+ if (!rule->cmds.empty())
+ return false;
+ const string& i = rule->inputs[0].str();
+ return (i == "RCS/%,v" || i == "RCS/%" || i == "%,v" ||
+ i == "s.%" || i == "SCCS/s.%");
+ }
+
void PopulateImplicitRule(const Rule* rule) {
for (Symbol output_pattern : rule->output_patterns) {
- implicit_rules_->Add(output_pattern.str(), rule);
+ if (output_pattern.str() != "%" && !IsIgnorableImplicitRule(rule))
+ implicit_rules_->Add(output_pattern.str(), rule);
}
}