blob: 4c790d3ee4e608fa8633923530f0774dff7e31f2 [file] [log] [blame]
agrievea6085a6a2016-09-16 17:48:101# Copyright 2016 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//build/config/locales.gni")
brettwd1bc9da2016-10-14 19:04:246import("//chrome/common/features.gni")
Scott Violetc8240b02018-03-08 22:03:597import("//extensions/buildflags/buildflags.gni")
agrieve5fce4ef2016-09-21 17:21:598import("//ui/base/ui_features.gni")
agrievea6085a6a2016-09-16 17:48:109import("chrome_repack_locales.gni")
10
11# Generates a rule to repack a set of resources, substituting a given string
12# in for the percentage (e.g. "100", "200"). It generates the repacked files in
13# the "gen" directory, and then introduces a copy rule to copy it to the root
14# build directory.
15#
16# Argument:
17# percent [required]
18# String to substitute for the percentage.
19template("chrome_repack_percent") {
20 percent = invoker.percent
21
22 repack(target_name) {
23 forward_variables_from(invoker,
24 [
25 "copy_data_to_bundle",
26 "repack_whitelist",
27 "visibility",
28 ])
29
30 # All sources should also have deps for completeness.
31 sources = [
agrievea6085a6a2016-09-16 17:48:1032 "$root_gen_dir/chrome/renderer_resources_${percent}_percent.pak",
33 "$root_gen_dir/chrome/theme_resources_${percent}_percent.pak",
34 "$root_gen_dir/components/components_resources_${percent}_percent.pak",
35 "$root_gen_dir/content/app/resources/content_resources_${percent}_percent.pak",
Blink Reformata30d4232018-04-07 15:31:0636 "$root_gen_dir/third_party/blink/public/resources/blink_scaled_resources_${percent}_percent.pak",
agrievea6085a6a2016-09-16 17:48:1037 "$root_gen_dir/ui/resources/ui_resources_${percent}_percent.pak",
38 ]
39
40 deps = [
41 "//chrome/app/theme:theme_resources",
42 "//chrome/renderer:resources",
43 "//components/resources",
44 "//components/strings",
45 "//content/app/resources",
46 "//net:net_resources",
Blink Reformata30d4232018-04-07 15:31:0647 "//third_party/blink/public:scaled_resources_${percent}_percent",
agrievea6085a6a2016-09-16 17:48:1048 "//ui/resources",
49 ]
50
51 if (defined(invoker.deps)) {
52 deps += invoker.deps
53 }
54
agrievea6085a6a2016-09-16 17:48:1055 if (toolkit_views) {
56 sources += [ "$root_gen_dir/ui/views/resources/views_resources_${percent}_percent.pak" ]
57 deps += [ "//ui/views/resources" ]
58 }
59 if (is_chromeos) {
James Cookf8a2bf72017-10-16 18:51:3960 sources += [
wutaocd13722f2018-02-21 22:00:3561 "$root_gen_dir/ash/components/resources/ash_components_resources_${percent}_percent.pak",
Sarah Huf5f60fe2018-07-31 21:28:5862 "$root_gen_dir/ash/login/resources/login_resources_${percent}_percent.pak",
James Cookf8a2bf72017-10-16 18:51:3963 "$root_gen_dir/ui/chromeos/resources/ui_chromeos_resources_${percent}_percent.pak",
64 ]
65 deps += [
wutaocd13722f2018-02-21 22:00:3566 "//ash/components/resources",
Sarah Huf5f60fe2018-07-31 21:28:5867 "//ash/login/resources",
James Cookf8a2bf72017-10-16 18:51:3968 "//ui/chromeos/resources",
69 ]
agrievea6085a6a2016-09-16 17:48:1070 }
71 if (enable_extensions) {
72 sources += [ "$root_gen_dir/extensions/extensions_browser_resources_${percent}_percent.pak" ]
73 deps += [ "//extensions:extensions_browser_resources" ]
74 }
75 if (enable_app_list) {
Jiaquan He68b28e22018-06-12 06:58:0976 sources += [ "$root_gen_dir/ash/app_list/resources/app_list_resources_${percent}_percent.pak" ]
77 deps += [ "//ash/app_list/resources" ]
agrievea6085a6a2016-09-16 17:48:1078 }
79
80 output = "${invoker.output_dir}/chrome_${percent}_percent.pak"
81 }
82}
83
agrievea6085a6a2016-09-16 17:48:1084template("chrome_extra_paks") {
85 repack(target_name) {
86 forward_variables_from(invoker,
87 [
88 "copy_data_to_bundle",
89 "repack_whitelist",
90 "visibility",
91 ])
92 output = "${invoker.output_dir}/resources.pak"
93 sources = [
agrievea6085a6a2016-09-16 17:48:1094 "$root_gen_dir/chrome/browser_resources.pak",
95 "$root_gen_dir/chrome/chrome_unscaled_resources.pak",
96 "$root_gen_dir/chrome/common_resources.pak",
97 "$root_gen_dir/chrome/invalidations_resources.pak",
98 "$root_gen_dir/chrome/net_internals_resources.pak",
michaeln832a5432017-02-02 03:46:3099 "$root_gen_dir/chrome/quota_internals_resources.pak",
robliao71aed692016-09-27 17:40:25100 "$root_gen_dir/chrome/task_scheduler_internals_resources.pak",
agrievea6085a6a2016-09-16 17:48:10101 "$root_gen_dir/chrome/translate_internals_resources.pak",
102 "$root_gen_dir/components/components_resources.pak",
103 "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
104 "$root_gen_dir/content/content_resources.pak",
Yuzhu Shen2efe42772017-11-11 02:01:09105 "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
agrievea6085a6a2016-09-16 17:48:10106 "$root_gen_dir/net/net_resources.pak",
Blink Reformata30d4232018-04-07 15:31:06107 "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak",
agrievea6085a6a2016-09-16 17:48:10108 "$root_gen_dir/ui/resources/webui_resources.pak",
109 ]
110 deps = [
111 "//chrome/app/theme:chrome_unscaled_resources",
112 "//chrome/browser:resources",
113 "//chrome/browser/resources:invalidations_resources",
114 "//chrome/browser/resources:net_internals_resources",
michaeln832a5432017-02-02 03:46:30115 "//chrome/browser/resources:quota_internals_resources",
robliao71aed692016-09-27 17:40:25116 "//chrome/browser/resources:task_scheduler_internals_resources",
agrievea6085a6a2016-09-16 17:48:10117 "//chrome/browser/resources:translate_internals_resources",
118 "//chrome/common:resources",
119 "//components/resources",
120 "//content:resources",
121 "//content/browser/tracing:resources",
Yuzhu Shen2efe42772017-11-11 02:01:09122 "//mojo/public/js:resources",
agrievea6085a6a2016-09-16 17:48:10123 "//net:net_resources",
Blink Reformata30d4232018-04-07 15:31:06124 "//third_party/blink/public:resources",
agrievea6085a6a2016-09-16 17:48:10125 "//ui/resources",
126 ]
127 if (defined(invoker.deps)) {
128 deps += invoker.deps
129 }
agrieve5fce4ef2016-09-21 17:21:59130 if (defined(invoker.additional_paks)) {
131 sources += invoker.additional_paks
132 }
agrievea6085a6a2016-09-16 17:48:10133
thestig6b471b0e2017-05-26 17:41:52134 if (is_android) {
135 sources += [ "$root_gen_dir/chrome/webapks_ui_resources.pak" ]
136 deps += [ "//chrome/browser/resources:webapks_ui_resources" ]
137 } else {
agrievea6085a6a2016-09-16 17:48:10138 # New paks should be added here by default.
139 sources += [
agrievea6085a6a2016-09-16 17:48:10140 "$root_gen_dir/chrome/component_extension_resources.pak",
Kyle Milka07a0ef02018-11-09 22:18:09141 "$root_gen_dir/chrome/local_ntp_resources.pak",
agrievea6085a6a2016-09-16 17:48:10142 "$root_gen_dir/chrome/settings_resources.pak",
thakis300faa72017-02-28 23:59:43143 "$root_gen_dir/content/browser/devtools/devtools_resources.pak",
dvallet7bbfe9f2017-05-16 05:41:13144 "$root_gen_dir/headless/headless_lib_resources.pak",
agrievea6085a6a2016-09-16 17:48:10145 ]
146 deps += [
147 "//chrome/browser/resources:component_extension_resources",
Kyle Milka07a0ef02018-11-09 22:18:09148 "//chrome/browser/resources:local_ntp_resources",
agrievea6085a6a2016-09-16 17:48:10149 "//chrome/browser/resources:settings_resources",
agrievea6085a6a2016-09-16 17:48:10150 "//content/browser/devtools:devtools_resources",
dvallet7bbfe9f2017-05-16 05:41:13151 "//headless:resources",
agrievea6085a6a2016-09-16 17:48:10152 ]
153 }
154 if (is_chromeos) {
fukino27d65fa2016-12-07 04:44:37155 sources += [
wutaoe5856b52018-04-20 18:54:08156 "$root_gen_dir/ash/public/cpp/resources/ash_public_unscaled_resources.pak",
Kyle Horimoto80c66e42018-03-23 00:23:10157 "$root_gen_dir/chrome/multidevice_setup_resources.pak",
Kyle Horimoto940d7df2018-03-17 01:00:23158 "$root_gen_dir/chromeos/chromeos_resources.pak",
dstockwell000c2fd2019-01-09 10:33:33159 "$root_gen_dir/third_party/ink/ink_resources.pak",
fukino27d65fa2016-12-07 04:44:37160 "$root_gen_dir/ui/file_manager/file_manager_resources.pak",
161 ]
162 deps += [
wutaoe5856b52018-04-20 18:54:08163 "//ash/public/cpp/resources:ash_public_unscaled_resources",
Kyle Horimoto80c66e42018-03-23 00:23:10164 "//chrome/browser/resources/chromeos:multidevice_setup_resources",
Kyle Horimoto940d7df2018-03-17 01:00:23165 "//chromeos/resources",
dstockwell000c2fd2019-01-09 10:33:33166 "//third_party/ink:ink_resources",
fukino27d65fa2016-12-07 04:44:37167 "//ui/file_manager:resources",
168 ]
agrievea6085a6a2016-09-16 17:48:10169 }
dpapadb1f8e9a2018-10-18 21:36:08170 if (!is_android && !is_chromeos) {
171 sources += [ "$root_gen_dir/chrome/onboarding_welcome_resources.pak" ]
172 deps += [ "//chrome/browser/resources:onboarding_welcome_resources" ]
173 }
agrievea6085a6a2016-09-16 17:48:10174 if (enable_extensions) {
175 sources += [
dpapad100ff112017-10-04 20:05:27176 "$root_gen_dir/chrome/extensions_resources.pak",
thestig6b471b0e2017-05-26 17:41:52177 "$root_gen_dir/chrome/sync_file_system_internals_resources.pak",
agrievea6085a6a2016-09-16 17:48:10178 "$root_gen_dir/extensions/extensions_renderer_resources.pak",
179 "$root_gen_dir/extensions/extensions_resources.pak",
180 ]
thestig6b471b0e2017-05-26 17:41:52181 deps += [
dpapad100ff112017-10-04 20:05:27182 "//chrome/browser/resources:extensions_resources",
thestig6b471b0e2017-05-26 17:41:52183 "//chrome/browser/resources:sync_file_system_internals_resources",
184 "//extensions:extensions_resources",
185 ]
gonzalon87192d772017-02-07 22:31:10186 }
dpapad18bff082017-10-26 02:19:51187 if (enable_print_preview) {
188 sources += [ "$root_gen_dir/chrome/print_preview_resources.pak" ]
189 deps += [ "//chrome/browser/resources:print_preview_resources" ]
190 }
agrievea6085a6a2016-09-16 17:48:10191 }
192}
agrieve5fce4ef2016-09-21 17:21:59193
194# Defines repack() targets used by Chrome. Specifically:
195# * chrome_100_percent.pak
196# * chrome_200_percent.pak (optionally)
197# * resources.pak
198# * locale .pak files
199#
200# Paramters:
201# output_dir [required]: Directory to output .pak files. Locale .pak files
202# will always be place in $output_dir/locales
203# additional_extra_paks: List of extra .pak sources for resources.pak.
zpeng368afac82017-07-17 18:47:45204# locale_whitelist: if set, override repack_whitelist for locale .pak files.
agrieve5fce4ef2016-09-21 17:21:59205# copy_data_to_bundle:
206# deps:
207# output_dir:
208# public_deps:
209# repack_whitelist:
210# visibility:
211# Normal meanings.
212#
213template("chrome_paks") {
214 chrome_repack_percent("${target_name}_100_percent") {
215 percent = "100"
216 forward_variables_from(invoker,
217 [
218 "copy_data_to_bundle",
219 "deps",
220 "output_dir",
221 "repack_whitelist",
222 "visibility",
223 ])
224 }
225
226 if (enable_hidpi) {
227 chrome_repack_percent("${target_name}_200_percent") {
228 percent = "200"
229 forward_variables_from(invoker,
230 [
231 "copy_data_to_bundle",
232 "deps",
233 "output_dir",
234 "repack_whitelist",
235 "visibility",
236 ])
237 }
238 }
239
240 chrome_extra_paks("${target_name}_extra") {
241 forward_variables_from(invoker,
242 [
243 "copy_data_to_bundle",
244 "deps",
245 "output_dir",
246 "repack_whitelist",
247 "visibility",
248 ])
249 if (defined(invoker.additional_extra_paks)) {
250 additional_paks = invoker.additional_extra_paks
251 }
252 }
253
zpeng368afac82017-07-17 18:47:45254 chrome_repack_locales("${target_name}_locales") {
255 forward_variables_from(invoker,
256 [
257 "copy_data_to_bundle",
258 "deps",
259 "visibility",
260 ])
261 if (defined(invoker.locale_whitelist)) {
262 repack_whitelist = invoker.locale_whitelist
263 } else if (defined(invoker.repack_whitelist)) {
264 repack_whitelist = invoker.repack_whitelist
265 }
thestig6b471b0e2017-05-26 17:41:52266
zpeng368afac82017-07-17 18:47:45267 input_locales = locales
268 output_dir = "${invoker.output_dir}/locales"
thestig6b471b0e2017-05-26 17:41:52269
zpeng368afac82017-07-17 18:47:45270 if (is_mac) {
271 output_locales = locales_as_mac_outputs
272 } else {
273 output_locales = locales
agrieve5fce4ef2016-09-21 17:21:59274 }
275 }
276
277 group(target_name) {
278 forward_variables_from(invoker, [ "deps" ])
279 public_deps = [
280 ":${target_name}_100_percent",
281 ":${target_name}_extra",
zpeng368afac82017-07-17 18:47:45282 ":${target_name}_locales",
agrieve5fce4ef2016-09-21 17:21:59283 ]
284 if (enable_hidpi) {
285 public_deps += [ ":${target_name}_200_percent" ]
286 }
287 if (defined(invoker.public_deps)) {
288 public_deps += invoker.public_deps
289 }
290 }
291}