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

Unified Diff: tools/grit/repack.gni

Issue 2338213002: Revert of 🍵 Refactor the various locale_paks() templates to be more shared (Closed)
Patch Set: Created 4 years, 3 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 | « ios/web/test/BUILD.gn ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/grit/repack.gni
diff --git a/tools/grit/repack.gni b/tools/grit/repack.gni
index 4f0462cf7fe8ab3c7ecac1cda9880b2eaa8db03d..0f257bb7c4274c1f478ac05e1c3018d37676593b 100644
--- a/tools/grit/repack.gni
+++ b/tools/grit/repack.gni
@@ -13,26 +13,12 @@
# output [required]
# File name (single string) of the output file.
#
-# copy_data_to_bundle [optional]
-# Whether to define a bundle_data() for the resulting pak.
-#
-# bundle_output [optional]
-# Path of the file in the application bundle, defaults to
-# {{bundle_resources_dir}}/{{source_file_part}}.
-#
# deps [optional]
# public_deps [optional]
# visibility [optional]
# Normal meaning.
template("repack") {
- _copy_data_to_bundle =
- defined(invoker.copy_data_to_bundle) && invoker.copy_data_to_bundle
- _repack_target_name = target_name
- if (_copy_data_to_bundle) {
- _repack_target_name = "${target_name}__repack"
- }
-
- action(_repack_target_name) {
+ action(target_name) {
forward_variables_from(invoker,
[
"deps",
@@ -40,9 +26,6 @@
"testonly",
"visibility",
])
- if (defined(visibility) && _copy_data_to_bundle) {
- visibility += [ ":${invoker.target_name}" ]
- }
assert(defined(invoker.sources), "Need sources for $target_name")
assert(defined(invoker.output), "Need output for $target_name")
@@ -63,119 +46,63 @@
args += [ rebase_path(invoker.output, root_build_dir) ]
args += rebase_path(invoker.sources, root_build_dir)
}
+}
- if (_copy_data_to_bundle) {
- bundle_data(target_name) {
- forward_variables_from(invoker,
- [
- "testonly",
- "visibility",
- ])
+# This template combines repacking resources and defining a bundle_data target
+# to move them to the application bundle. This is mostly useful on iOS.
+#
+# Parameters:
+# sources [required]
+# List of pak files that need to be combined.
+#
+# output [required]
+# File name (single string) of the output file.
+#
+# bundle_output [optional]
+# Path of the file in the application bundle, defaults to
+# {{bundle_resources_dir}}/{{source_file_part}} if omitted.
+#
+# deps [optional]
+# visibility [optional]
+# Normal meaning.
+template("repack_and_bundle") {
+ assert(defined(invoker.bundle_output), "Need bundle_output for $target_name")
- public_deps = [
- ":$_repack_target_name",
+ _repack_target_name = target_name + "_repack"
+ _bundle_target_name = target_name
+
+ repack(_repack_target_name) {
+ visibility = [ ":$_bundle_target_name" ]
+ forward_variables_from(invoker,
+ [
+ "deps",
+ "output",
+ "sources",
+ "testonly",
+ ])
+ }
+
+ bundle_data(_bundle_target_name) {
+ forward_variables_from(invoker,
+ [
+ "testonly",
+ "visibility",
+ ])
+
+ public_deps = [
+ ":$_repack_target_name",
+ ]
+ sources = [
+ invoker.output,
+ ]
+ if (defined(invoker.bundle_output)) {
+ outputs = [
+ invoker.bundle_output,
]
- sources = [
- invoker.output,
+ } else {
+ outputs = [
+ "{{bundle_resources_dir}}/{{source_file_part}}",
]
- if (defined(invoker.bundle_output)) {
- outputs = [
- invoker.bundle_output,
- ]
- } else {
- outputs = [
- "{{bundle_resources_dir}}/{{source_file_part}}",
- ]
- }
}
}
}
-
-# Repacks a set of .pak files for each locale.
-#
-# Parameters:
-#
-# input_locales [required]
-# List of locale names to use as inputs.
-#
-# output_locales [required]
-# A list containing the corresponding output names for each of the
-# input names. Mac and iOS use different names in some cases.
-#
-# source_patterns [required]
-# The pattern for pak files which need repacked. The filenames always end
-# with "${locale}.pak".
-# E.g.:
-# ${root_gen_dir}/foo_ expands to ${root_gen_dir}/foo_zh-CN.pak
-# when locale is zh-CN.
-#
-# output_dir [optional]
-# Directory in which to put all pak files.
-#
-# deps [optional]
-# visibility [optional]
-# testonly [optional]
-# copy_data_to_bundle [optional]
-# repack_whitelist [optional]
-# Normal meaning.
-template("repack_locales") {
- # GN can't handle invoker.output_locales[foo] (http://crbug.com/614747).
- _output_locales = invoker.output_locales
- _output_dir = "$target_gen_dir/$target_name"
- if (defined(invoker.output_dir)) {
- _output_dir = invoker.output_dir
- }
-
- # Collects all targets the loop generates.
- _locale_targets = []
-
- # This loop iterates over the input locales and also keeps a counter so it
- # can simultaneously iterate over the output locales (using GN's very
- # limited looping capabilities).
- _current_index = 0
- foreach(_input_locale, invoker.input_locales) {
- _output_locale = _output_locales[_current_index]
-
- # Compute the name of the target for the current file. Save it for the deps.
- _current_name = "${target_name}_${_input_locale}"
- _locale_targets += [ ":$_current_name" ]
-
- repack(_current_name) {
- forward_variables_from(invoker,
- [
- "copy_data_to_bundle",
- "bundle_output",
- "deps",
- "repack_whitelist",
- "testonly",
- ])
- visibility = [ ":${invoker.target_name}" ]
- if (is_ios) {
- output = "$_output_dir/${_output_locale}.lproj/locale.pak"
- if (defined(copy_data_to_bundle) && copy_data_to_bundle) {
- bundle_output =
- "{{bundle_resources_dir}}/${_output_locale}.lproj/locale.pak"
- }
- } else {
- output = "$_output_dir/${_output_locale}.pak"
- }
- set_sources_assignment_filter([])
- sources = []
- foreach(_pattern, invoker.source_patterns) {
- sources += [ "${_pattern}${_input_locale}.pak" ]
- }
- }
-
- _current_index = _current_index + 1
- }
-
- # The group that external targets depend on which collects all deps.
- group(target_name) {
- forward_variables_from(invoker,
- [
- "visibility",
- "testonly",
- ])
- public_deps = _locale_targets
- }
-}
« no previous file with comments | « ios/web/test/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698