Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Unified Diff: tools/gn/ninja_toolchain_writer.cc

Issue 2152413002: GN: don't write separate files for non-binary targets (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: typo Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/gn/ninja_toolchain_writer.h ('k') | tools/gn/ninja_toolchain_writer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/gn/ninja_toolchain_writer.cc
diff --git a/tools/gn/ninja_toolchain_writer.cc b/tools/gn/ninja_toolchain_writer.cc
index 9b699b8b70766ad02cf77dcdc3b9380636ec0e7d..40653a87aaf8004f9fb44080534a7e0d5fcc8b9e 100644
--- a/tools/gn/ninja_toolchain_writer.cc
+++ b/tools/gn/ninja_toolchain_writer.cc
@@ -27,11 +27,9 @@ const char kIndent[] = " ";
NinjaToolchainWriter::NinjaToolchainWriter(
const Settings* settings,
const Toolchain* toolchain,
- const std::vector<const Target*>& targets,
std::ostream& out)
: settings_(settings),
toolchain_(toolchain),
- targets_(targets),
out_(out),
path_output_(settings_->build_settings()->build_dir(),
settings_->build_settings()->root_path_utf8(),
@@ -41,16 +39,27 @@ NinjaToolchainWriter::NinjaToolchainWriter(
NinjaToolchainWriter::~NinjaToolchainWriter() {
}
-void NinjaToolchainWriter::Run() {
- WriteRules();
- WriteSubninjas();
+void NinjaToolchainWriter::Run(
+ const std::vector<NinjaWriter::TargetRulePair>& rules) {
+ std::string rule_prefix = GetNinjaRulePrefixForToolchain(settings_);
+
+ 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)
+ WriteToolRule(tool_type, tool, rule_prefix);
+ }
+ out_ << std::endl;
+
+ for (const auto& pair : rules)
+ out_ << pair.second;
}
// static
bool NinjaToolchainWriter::RunAndWriteFile(
const Settings* settings,
const Toolchain* toolchain,
- const std::vector<const Target*>& targets) {
+ const std::vector<NinjaWriter::TargetRulePair>& rules) {
base::FilePath ninja_file(settings->build_settings()->GetFullPath(
GetNinjaFileForToolchain(settings)));
ScopedTrace trace(TraceItem::TRACE_FILE_WRITE, FilePathToUTF8(ninja_file));
@@ -63,23 +72,11 @@ bool NinjaToolchainWriter::RunAndWriteFile(
if (file.fail())
return false;
- NinjaToolchainWriter gen(settings, toolchain, targets, file);
- gen.Run();
+ NinjaToolchainWriter gen(settings, toolchain, file);
+ gen.Run(rules);
return true;
}
-void NinjaToolchainWriter::WriteRules() {
- std::string rule_prefix = GetNinjaRulePrefixForToolchain(settings_);
-
- 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)
- WriteToolRule(tool_type, tool, rule_prefix);
- }
- out_ << std::endl;
-}
-
void NinjaToolchainWriter::WriteToolRule(const Toolchain::ToolType type,
const Tool* tool,
const std::string& rule_prefix) {
@@ -133,15 +130,3 @@ void NinjaToolchainWriter::WriteRulePattern(const char* name,
SubstitutionWriter::WriteWithNinjaVariables(pattern, options, out_);
out_ << std::endl;
}
-
-void NinjaToolchainWriter::WriteSubninjas() {
- // Write subninja commands for each generated target.
- for (auto* target : targets_) {
- OutputFile ninja_file(target->settings()->build_settings(),
- GetNinjaFileForTarget(target));
- out_ << "subninja ";
- path_output_.WriteFile(out_, ninja_file);
- out_ << std::endl;
- }
- out_ << std::endl;
-}
« no previous file with comments | « tools/gn/ninja_toolchain_writer.h ('k') | tools/gn/ninja_toolchain_writer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698