Chromium Code Reviews| Index: tools/gn/ninja_toolchain_writer.cc |
| diff --git a/tools/gn/ninja_toolchain_writer.cc b/tools/gn/ninja_toolchain_writer.cc |
| index e7459ebb3cfa2ede1e0d5303aedfdf0b36e134b2..0e6beedcbf98214f480ebe01de2fe80bd5026d71 100644 |
| --- a/tools/gn/ninja_toolchain_writer.cc |
| +++ b/tools/gn/ninja_toolchain_writer.cc |
| @@ -11,6 +11,7 @@ |
| #include "tools/gn/build_settings.h" |
| #include "tools/gn/filesystem_utils.h" |
| #include "tools/gn/ninja_utils.h" |
| +#include "tools/gn/pool.h" |
| #include "tools/gn/settings.h" |
| #include "tools/gn/substitution_writer.h" |
| #include "tools/gn/target.h" |
| @@ -70,6 +71,22 @@ bool NinjaToolchainWriter::RunAndWriteFile( |
| void NinjaToolchainWriter::WriteRules() { |
| std::string rule_prefix = GetNinjaRulePrefixForToolchain(settings_); |
| + UniqueVector<const Pool*> pools; |
| + for (int i = Toolchain::TYPE_NONE + 1; i < Toolchain::TYPE_NUMTYPES; i++) { |
| + Toolchain::ToolType tool_type = static_cast<Toolchain::ToolType>(i); |
| + const Tool* tool = toolchain_->GetTool(tool_type); |
| + if (tool && tool->pool_label_pair().ptr) |
| + pools.push_back(tool->pool_label_pair().ptr); |
| + } |
| + |
| + if (!pools.empty()) { |
| + for (const Pool* pool : pools) { |
| + out_ << "pool " << rule_prefix << pool->label().name() << std::endl; |
|
brettw
2016/05/24 22:03:31
How the naming works here is a bit suspicious.
In
sdefresne
2016/05/26 15:38:37
Done.
|
| + out_ << kIndent << "depth = " << pool->depth() << std::endl; |
| + } |
| + out_ << std::endl; |
| + } |
| + |
| for (int i = Toolchain::TYPE_NONE + 1; i < Toolchain::TYPE_NUMTYPES; i++) { |
| Toolchain::ToolType tool_type = static_cast<Toolchain::ToolType>(i); |
| const Tool* tool = toolchain_->GetTool(tool_type); |
| @@ -117,6 +134,11 @@ void NinjaToolchainWriter::WriteToolRule(const Toolchain::ToolType type, |
| if (tool->restat()) |
| out_ << kIndent << "restat = 1" << std::endl; |
| + |
| + if (tool->pool_label_pair().ptr) { |
| + out_ << kIndent << "pool = " |
| + << rule_prefix << tool->pool_label_pair().label.name() << std::endl; |
| + } |
| } |
| void NinjaToolchainWriter::WriteRulePattern(const char* name, |