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

Unified Diff: tools/gn/bundle_data.cc

Issue 1804263003: Consider bundle_data as public_deps of create_bundle targets. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@{interstitial}
Patch Set: Second round of comments Created 4 years, 9 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/bundle_data.h ('k') | tools/gn/target.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/gn/bundle_data.cc
diff --git a/tools/gn/bundle_data.cc b/tools/gn/bundle_data.cc
index e22612c23be502561889f3416a0d7736cc974e32..7faccbdc51a6442ddec6626e31af77f53d38f03c 100644
--- a/tools/gn/bundle_data.cc
+++ b/tools/gn/bundle_data.cc
@@ -43,26 +43,38 @@ BundleData::BundleData() {}
BundleData::~BundleData() {}
-void BundleData::AddFileRuleFromTarget(const Target* target) {
+void BundleData::AddBundleData(const Target* target) {
DCHECK_EQ(target->output_type(), Target::BUNDLE_DATA);
+ bundle_deps_.push_back(target);
+}
- std::vector<SourceFile> file_rule_sources;
- for (const SourceFile& source_file : target->sources()) {
- if (IsSourceFileFromAssetCatalog(source_file, nullptr)) {
- asset_catalog_sources_.push_back(source_file);
- } else {
- file_rule_sources.push_back(source_file);
+void BundleData::OnTargetResolved(Target* owning_target) {
+ // Only initialize file_rules_ and asset_catalog_sources for "create_bundle"
+ // target (properties are only used by those targets).
+ if (owning_target->output_type() != Target::CREATE_BUNDLE)
+ return;
+
+ for (const Target* target : bundle_deps_) {
+ SourceFiles file_rule_sources;
+ for (const SourceFile& source_file : target->sources()) {
+ if (IsSourceFileFromAssetCatalog(source_file, nullptr)) {
+ asset_catalog_sources_.push_back(source_file);
+ } else {
+ file_rule_sources.push_back(source_file);
+ }
}
- }
- if (!file_rule_sources.empty()) {
- DCHECK_EQ(target->action_values().outputs().list().size(), 1u);
- file_rules_.push_back(BundleFileRule(
- file_rule_sources, target->action_values().outputs().list()[0]));
+ if (!file_rule_sources.empty()) {
+ DCHECK_EQ(target->action_values().outputs().list().size(), 1u);
+ file_rules_.push_back(BundleFileRule(
+ file_rule_sources, target->action_values().outputs().list()[0]));
+ }
}
+
+ GetSourceFiles(&owning_target->sources());
}
-void BundleData::GetSourceFiles(std::vector<SourceFile>* sources) const {
+void BundleData::GetSourceFiles(SourceFiles* sources) const {
for (const BundleFileRule& file_rule : file_rules_) {
sources->insert(sources->end(), file_rule.sources().begin(),
file_rule.sources().end());
@@ -72,8 +84,8 @@ void BundleData::GetSourceFiles(std::vector<SourceFile>* sources) const {
}
void BundleData::GetOutputFiles(const Settings* settings,
- std::vector<OutputFile>* outputs) const {
- std::vector<SourceFile> outputs_as_sources;
+ OutputFiles* outputs) const {
+ SourceFiles outputs_as_sources;
GetOutputsAsSourceFiles(settings, &outputs_as_sources);
for (const SourceFile& source_file : outputs_as_sources)
outputs->push_back(OutputFile(settings->build_settings(), source_file));
@@ -81,7 +93,7 @@ void BundleData::GetOutputFiles(const Settings* settings,
void BundleData::GetOutputsAsSourceFiles(
const Settings* settings,
- std::vector<SourceFile>* outputs_as_source) const {
+ SourceFiles* outputs_as_source) const {
for (const BundleFileRule& file_rule : file_rules_) {
for (const SourceFile& source : file_rule.sources()) {
outputs_as_source->push_back(
« no previous file with comments | « tools/gn/bundle_data.h ('k') | tools/gn/target.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698