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

Side by Side Diff: ios/chrome/extension_repack.gni

Issue 2339783002: Reland of 🍵 Refactor the various locale_paks() templates to be more shared (Closed)
Patch Set: deps += -> deps = 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 unified diff | Download patch
« no previous file with comments | « ios/chrome/app/resources/ios_chrome_repack.gni ('k') | ios/chrome/share_extension/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//tools/grit/repack.gni") 5 import("//tools/grit/repack.gni")
6 6
7 # Pack all resources for an application extension for a given locale. 7 # Pack all resources for an application extension for all locales.
8 # 8 #
9 # Arguments: 9 # Arguments (in addition to those from repack_locales):
10 # 10 #
11 # extension [required] 11 # extension [required]
12 # name of the application extension. 12 # name of the application extension.
13 # 13 #
14 # input_locale [required] 14 template("extension_repack_all_locales") {
15 # name of the locale to pack. 15 # Wraps repack_locales(), setting the source_patterns and deps required for
16 # 16 # Chrome.
17 # output_locale [required] 17 # Generates a collection of bundle_data targets.
18 # name of the locale (may be different from input_locale as iOS 18 repack_locales(target_name) {
19 # and Chrome does not use the same convention for naming locales 19 forward_variables_from(invoker, "*", [ "extension" ])
20 # with country variants).
21 #
22 # copy_data_to_bundle [required]
23 # controls whether bundle_data targets are defined to copy the repacked
24 # data into the final bundle.
25 #
26 # visibility [optional]
27 # usual meaning.
28 #
29 template("_extension_repack_one_locale") {
30 assert(defined(invoker.extension), "Need extension for $target_name")
31 assert(defined(invoker.input_locale), "Need input_locale for $target_name")
32 assert(defined(invoker.output_locale), "Need output_locale for $target_name")
33 20
34 if (invoker.copy_data_to_bundle) { 21 source_patterns = [ "$root_gen_dir/ios/${invoker.extension}/ios_${invoker.ex tension}_strings_" ]
35 _target_type = "repack_and_bundle"
36 } else {
37 _target_type = "repack"
38 }
39
40 target(_target_type, target_name) {
41 forward_variables_from(invoker, [ "visibility" ])
42 22
43 deps = [ 23 deps = [
44 "//ios/chrome/${invoker.extension}/strings", 24 "//ios/chrome/${invoker.extension}/strings",
45 ] 25 ]
46
47 sources = [
48 "$root_gen_dir/ios/${invoker.extension}/" +
49 "ios_${invoker.extension}_strings_${invoker.input_locale}.pak",
50 ]
51
52 output = "$target_gen_dir/${invoker.output_locale}.lproj/locale.pak"
sdefresne 2016/09/14 08:02:53 This change is breaking our downstream bots with t
53 if (invoker.copy_data_to_bundle) {
54 bundle_output = "{{bundle_resources_dir}}/" +
55 "${invoker.output_locale}.lproj/locale.pak"
56 }
57 } 26 }
58 } 27 }
59
60 # Pack all resources for an application extension for all locales.
61 #
62 # Arguments:
63 #
64 # extension [required]
65 # name of the application extension.
66 #
67 # input_locales [required]
68 # list of all locales to pack.
69 #
70 # output_locales [required]
71 # list of all locales in application bundle (may differ from input
72 # locales as iOS and Chrome does not use the same convention for
73 # naming locales with country variants).
74 #
75 # Must be the same length as input_locales.
76 #
77 # copy_data_to_bundle [optional]
78 # controls whether bundle_data targets are defined to copy the repacked
79 # data into the final bundle (defaults to true if not defined).
80 #
81 # visibility [optional]
82 # usual meaning.
83 #
84 template("extension_repack_all_locales") {
85 assert(defined(invoker.extension), "Need extension for $target_name")
86 assert(defined(invoker.input_locales), "Need input_locales for $target_name")
87 assert(defined(invoker.output_locales),
88 "Need output_locales for $target_name")
89
90 _target_name = target_name
91
92 _copy_data_to_bundle = true
93 if (defined(invoker.copy_data_to_bundle)) {
94 _copy_data_to_bundle = invoker.copy_data_to_bundle
95 }
96
97 # TODO(614747): GN parser does not grok invoker.output_locales[foo]. Use a
98 # local variables to workaround this issue until the issue is fixed.
99 _current_locale = 0
100 _output_locales = invoker.output_locales
101
102 # Collect all locale targets to avoid looping twice over the locales.
103 _locale_targets = []
104
105 foreach(_input_locale, invoker.input_locales) {
106 _output_locale = _output_locales[_current_locale]
107
108 _locale_target = _target_name + "_$_input_locale"
109 _extension_repack_one_locale(_locale_target) {
110 visibility = [ ":$_target_name" ]
111 input_locale = _input_locale
112 output_locale = _output_locale
113 extension = invoker.extension
114 copy_data_to_bundle = _copy_data_to_bundle
115 }
116
117 _locale_targets += [ ":$_locale_target" ]
118 _current_locale = _current_locale + 1
119 }
120
121 group(_target_name) {
122 forward_variables_from(invoker, [ "visibility" ])
123 public_deps = _locale_targets
124 }
125 }
OLDNEW
« no previous file with comments | « ios/chrome/app/resources/ios_chrome_repack.gni ('k') | ios/chrome/share_extension/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698