[M108 Migration][HBBTV] Implement ewk_context_register_jsplugin_mime_types API
[platform/framework/web/chromium-efl.git] / chrome / chrome_paks.gni
1 # Copyright 2016 The Chromium Authors
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import("//ash/ambient/resources/resources.gni")
6 import("//build/config/chromebox_for_meetings/buildflags.gni")
7 import("//build/config/chromeos/ui_mode.gni")
8 import("//build/config/locales.gni")
9 import("//chrome/browser/buildflags.gni")
10 import("//chrome/common/features.gni")
11 import("//extensions/buildflags/buildflags.gni")
12 import("//pdf/features.gni")
13 import("//ui/base/ui_features.gni")
14 import("chrome_repack_locales.gni")
15
16 # Generates a rule to repack a set of resources, substituting a given string
17 # in for the percentage (e.g. "100", "200"). It generates the repacked files in
18 # the "gen" directory, and then introduces a copy rule to copy it to the root
19 # build directory.
20 #
21 # Argument:
22 #   percent [required]
23 #      String to substitute for the percentage.
24 template("chrome_repack_percent") {
25   percent = invoker.percent
26
27   repack(target_name) {
28     forward_variables_from(invoker,
29                            [
30                              "copy_data_to_bundle",
31                              "mark_as_data",
32                              "repack_allowlist",
33                              "visibility",
34                            ])
35
36     # All sources should also have deps for completeness.
37     sources = [
38       "$root_gen_dir/chrome/renderer_resources_${percent}_percent.pak",
39       "$root_gen_dir/chrome/theme_resources_${percent}_percent.pak",
40       "$root_gen_dir/components/components_resources_${percent}_percent.pak",
41       "$root_gen_dir/third_party/blink/public/resources/blink_scaled_resources_${percent}_percent.pak",
42       "$root_gen_dir/ui/resources/ui_resources_${percent}_percent.pak",
43     ]
44
45     deps = [
46       "//chrome/app/theme:theme_resources",
47       "//chrome/renderer:resources",
48       "//components/resources",
49       "//components/strings",
50       "//net:net_resources",
51       "//third_party/blink/public:scaled_resources_${percent}_percent",
52       "//ui/resources",
53     ]
54
55     if (defined(invoker.deps)) {
56       deps += invoker.deps
57     }
58
59     if (toolkit_views) {
60       sources += [ "$root_gen_dir/ui/views/resources/views_resources_${percent}_percent.pak" ]
61       deps += [ "//ui/views/resources" ]
62     }
63     if (is_chromeos_ash) {
64       sources += [
65         "$root_gen_dir/ash/login/resources/login_resources_${percent}_percent.pak",
66         "$root_gen_dir/chrome/app_icon_resources_${percent}_percent.pak",
67         "$root_gen_dir/ui/chromeos/resources/ui_chromeos_resources_${percent}_percent.pak",
68       ]
69       deps += [
70         "//ash/login/resources",
71         "//chrome/browser/resources/chromeos:app_icon_resources",
72         "//ui/chromeos/resources",
73       ]
74     }
75     if (enable_extensions) {
76       sources += [ "$root_gen_dir/extensions/extensions_browser_resources_${percent}_percent.pak" ]
77       deps += [ "//extensions:extensions_browser_resources" ]
78     }
79
80     output = "${invoker.output_dir}/chrome_${percent}_percent.pak"
81   }
82 }
83
84 template("chrome_extra_paks") {
85   repack(target_name) {
86     forward_variables_from(invoker,
87                            [
88                              "copy_data_to_bundle",
89                              "mark_as_data",
90                              "repack_allowlist",
91                              "visibility",
92                            ])
93     output = "${invoker.output_dir}/resources.pak"
94     sources = [
95       "$root_gen_dir/base/tracing/protos/tracing_proto_resources.pak",
96       "$root_gen_dir/chrome/browser_resources.pak",
97       "$root_gen_dir/chrome/chrome_unscaled_resources.pak",
98       "$root_gen_dir/chrome/common_resources.pak",
99       "$root_gen_dir/chrome/segmentation_internals_resources.pak",
100       "$root_gen_dir/components/autofill/core/browser/autofill_address_rewriter_resources.pak",
101       "$root_gen_dir/components/components_resources.pak",
102       "$root_gen_dir/content/content_resources.pak",
103       "$root_gen_dir/content/indexed_db_resources.pak",
104       "$root_gen_dir/content/quota_internals_resources.pak",
105       "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
106       "$root_gen_dir/net/net_resources.pak",
107       "$root_gen_dir/skia/skia_resources.pak",
108       "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak",
109       "$root_gen_dir/third_party/blink/public/resources/inspector_overlay_resources.pak",
110       "$root_gen_dir/ui/resources/webui_generated_resources.pak",
111     ]
112     deps = [
113       "//base/tracing/protos:chrome_track_event_resources",
114       "//chrome/app/theme:chrome_unscaled_resources",
115       "//chrome/browser:resources",
116       "//chrome/browser/resources/segmentation_internals:resources",
117       "//chrome/common:resources",
118       "//components/autofill/core/browser:autofill_address_rewriter_resources",
119       "//components/history_clusters/history_clusters_internals/resources",
120       "//components/metrics/debug:resources",
121       "//components/optimization_guide/optimization_guide_internals/resources",
122       "//components/resources",
123       "//content:content_resources",
124       "//content/browser/resources/indexed_db:resources",
125       "//content/browser/resources/quota:resources",
126       "//mojo/public/js:resources",
127       "//net:net_resources",
128       "//skia:skia_resources",
129       "//third_party/blink/public:devtools_inspector_resources",
130       "//third_party/blink/public:resources",
131       "//ui/resources",
132     ]
133     if (defined(invoker.deps)) {
134       deps += invoker.deps
135     }
136     if (defined(invoker.additional_paks)) {
137       sources += invoker.additional_paks
138     }
139
140     if (!is_android) {
141       # New paks should be added here by default.
142       sources += [
143         "$root_gen_dir/chrome/access_code_cast_resources.pak",
144         "$root_gen_dir/chrome/app_service_internals_resources.pak",
145         "$root_gen_dir/chrome/bookmarks_resources.pak",
146         "$root_gen_dir/chrome/commander_resources.pak",
147         "$root_gen_dir/chrome/component_extension_resources.pak",
148         "$root_gen_dir/chrome/dev_ui_resources.pak",
149         "$root_gen_dir/chrome/downloads_resources.pak",
150         "$root_gen_dir/chrome/feed_resources.pak",
151         "$root_gen_dir/chrome/feedback_resources.pak",
152         "$root_gen_dir/chrome/gaia_auth_host_resources.pak",
153         "$root_gen_dir/chrome/history_resources.pak",
154         "$root_gen_dir/chrome/identity_internals_resources.pak",
155         "$root_gen_dir/chrome/image_editor_resources.pak",
156         "$root_gen_dir/chrome/image_editor_untrusted_resources.pak",
157         "$root_gen_dir/chrome/inline_login_resources.pak",
158         "$root_gen_dir/chrome/management_resources.pak",
159         "$root_gen_dir/chrome/new_tab_page_instant_resources.pak",
160         "$root_gen_dir/chrome/new_tab_page_resources.pak",
161         "$root_gen_dir/chrome/new_tab_page_third_party_resources.pak",
162         "$root_gen_dir/chrome/password_manager_resources.pak",
163         "$root_gen_dir/chrome/privacy_sandbox_resources.pak",
164         "$root_gen_dir/chrome/profile_internals_resources.pak",
165         "$root_gen_dir/chrome/settings_resources.pak",
166         "$root_gen_dir/chrome/side_panel_customize_chrome_resources.pak",
167         "$root_gen_dir/chrome/side_panel_resources.pak",
168         "$root_gen_dir/chrome/signin_resources.pak",
169         "$root_gen_dir/chrome/support_tool_resources.pak",
170         "$root_gen_dir/chrome/tab_search_resources.pak",
171         "$root_gen_dir/chrome/webui_gallery_resources.pak",
172         "$root_gen_dir/chrome/whats_new_resources.pak",
173         "$root_gen_dir/content/browser/devtools/devtools_resources.pak",
174         "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
175       ]
176       deps += [
177         "//chrome/browser/resources:component_extension_resources",
178         "//chrome/browser/resources:dev_ui_paks",
179         "//chrome/browser/resources/access_code_cast:resources",
180         "//chrome/browser/resources/app_service_internals:resources",
181         "//chrome/browser/resources/bookmarks:resources",
182         "//chrome/browser/resources/commander:resources",
183         "//chrome/browser/resources/downloads:resources",
184         "//chrome/browser/resources/feed:resources",
185         "//chrome/browser/resources/feedback:resources",
186         "//chrome/browser/resources/gaia_auth_host:resources",
187         "//chrome/browser/resources/history:resources",
188         "//chrome/browser/resources/identity_internals:resources",
189         "//chrome/browser/resources/image_editor:trusted_resources",
190         "//chrome/browser/resources/image_editor:untrusted_resources",
191         "//chrome/browser/resources/inline_login:resources",
192         "//chrome/browser/resources/management:resources",
193         "//chrome/browser/resources/new_tab_page:resources",
194         "//chrome/browser/resources/new_tab_page_instant:resources",
195         "//chrome/browser/resources/new_tab_page_third_party:resources",
196         "//chrome/browser/resources/password_manager:resources",
197         "//chrome/browser/resources/privacy_sandbox:resources",
198         "//chrome/browser/resources/profile_internals:resources",
199         "//chrome/browser/resources/settings:resources",
200         "//chrome/browser/resources/side_panel:resources",
201         "//chrome/browser/resources/side_panel/customize_chrome:resources",
202         "//chrome/browser/resources/signin:resources",
203         "//chrome/browser/resources/support_tool:resources",
204         "//chrome/browser/resources/tab_search:resources",
205         "//chrome/browser/resources/webui_gallery:resources",
206         "//chrome/browser/resources/whats_new:resources",
207         "//content/browser/devtools:devtools_resources",
208         "//content/browser/tracing:resources",
209       ]
210       if (is_chrome_branded) {
211         sources += [
212           "$root_gen_dir/chrome/media_router_feedback_resources.pak",
213           "$root_gen_dir/chrome/preinstalled_web_apps_resources.pak",
214         ]
215         deps += [
216           "//chrome/browser/resources:preinstalled_web_apps_resources",
217           "//chrome/browser/resources/media_router/cast_feedback:resources",
218         ]
219       }
220     }
221     if (is_chromeos_ash) {
222       sources += [
223         "$root_gen_dir/ash/public/cpp/resources/ash_public_unscaled_resources.pak",
224         "$root_gen_dir/ash/webui/ash_camera_app_resources.pak",
225         "$root_gen_dir/ash/webui/ash_color_internals_resources.pak",
226         "$root_gen_dir/ash/webui/ash_demo_mode_app_resources.pak",
227         "$root_gen_dir/ash/webui/ash_diagnostics_app_resources.pak",
228         "$root_gen_dir/ash/webui/ash_eche_app_resources.pak",
229         "$root_gen_dir/ash/webui/ash_eche_bundle_resources.pak",
230         "$root_gen_dir/ash/webui/ash_face_ml_app_bundle_resources.pak",
231         "$root_gen_dir/ash/webui/ash_face_ml_app_resources.pak",
232         "$root_gen_dir/ash/webui/ash_face_ml_app_untrusted_resources.pak",
233         "$root_gen_dir/ash/webui/ash_firmware_update_app_resources.pak",
234         "$root_gen_dir/ash/webui/ash_guest_os_installer_resources.pak",
235         "$root_gen_dir/ash/webui/ash_help_app_resources.pak",
236         "$root_gen_dir/ash/webui/ash_media_app_resources.pak",
237         "$root_gen_dir/ash/webui/ash_multidevice_debug_resources.pak",
238         "$root_gen_dir/ash/webui/ash_os_feedback_resources.pak",
239         "$root_gen_dir/ash/webui/ash_os_feedback_untrusted_resources.pak",
240         "$root_gen_dir/ash/webui/ash_personalization_app_resources.pak",
241         "$root_gen_dir/ash/webui/ash_print_management_resources.pak",
242         "$root_gen_dir/ash/webui/ash_projector_annotator_trusted_resources.pak",
243         "$root_gen_dir/ash/webui/ash_projector_annotator_untrusted_resources.pak",
244         "$root_gen_dir/ash/webui/ash_projector_app_trusted_resources.pak",
245         "$root_gen_dir/ash/webui/ash_projector_app_untrusted_resources.pak",
246         "$root_gen_dir/ash/webui/ash_projector_common_resources.pak",
247         "$root_gen_dir/ash/webui/ash_scanning_app_resources.pak",
248         "$root_gen_dir/ash/webui/ash_shimless_rma_resources.pak",
249         "$root_gen_dir/ash/webui/ash_shortcut_customization_app_resources.pak",
250         "$root_gen_dir/ash/webui/ash_system_extensions_internals_resources.pak",
251         "$root_gen_dir/ash/webui/connectivity_diagnostics_resources.pak",
252         "$root_gen_dir/ash/webui/file_manager/resources/file_manager_swa_resources.pak",
253         "$root_gen_dir/ash/webui/file_manager/untrusted_resources/file_manager_untrusted_resources.pak",
254         "$root_gen_dir/chrome/arc_account_picker_resources.pak",
255         "$root_gen_dir/chrome/assistant_optin_resources.pak",
256         "$root_gen_dir/chrome/audio_resources.pak",
257         "$root_gen_dir/chrome/bluetooth_pairing_dialog_resources.pak",
258         "$root_gen_dir/chrome/browser/supervised_user/supervised_user_unscaled_resources.pak",
259         "$root_gen_dir/chrome/cloud_upload_resources.pak",
260         "$root_gen_dir/chrome/desk_api_resources.pak",
261         "$root_gen_dir/chrome/emoji_picker_resources.pak",
262         "$root_gen_dir/chrome/gaia_action_buttons_resources.pak",
263         "$root_gen_dir/chrome/internet_config_dialog_resources.pak",
264         "$root_gen_dir/chrome/internet_detail_dialog_resources.pak",
265         "$root_gen_dir/chrome/launcher_internals_resources.pak",
266         "$root_gen_dir/chrome/manage_mirrorsync_resources.pak",
267         "$root_gen_dir/chrome/multidevice_internals_resources.pak",
268         "$root_gen_dir/chrome/multidevice_setup_resources.pak",
269         "$root_gen_dir/chrome/nearby_internals_resources.pak",
270         "$root_gen_dir/chrome/nearby_share_dialog_resources.pak",
271         "$root_gen_dir/chrome/network_ui_resources.pak",
272         "$root_gen_dir/chrome/notification_tester_resources.pak",
273         "$root_gen_dir/chrome/oobe_conditional_resources.pak",
274         "$root_gen_dir/chrome/oobe_unconditional_resources.pak",
275         "$root_gen_dir/chrome/os_settings_resources.pak",
276         "$root_gen_dir/chrome/password_change_resources.pak",
277         "$root_gen_dir/chromeos/ash/ash_resources.pak",
278         "$root_gen_dir/chromeos/chromeos_help_app_bundle_resources.pak",
279         "$root_gen_dir/chromeos/chromeos_help_app_kids_magazine_bundle_resources.pak",
280         "$root_gen_dir/chromeos/chromeos_media_app_bundle_resources.pak",
281         "$root_gen_dir/chromeos/chromeos_projector_app_bundle_resources.pak",
282         "$root_gen_dir/chromeos/chromeos_resources.pak",
283         "$root_gen_dir/components/arc/input_overlay_resources.pak",
284         "$root_gen_dir/ui/file_manager/file_manager_gen_resources.pak",
285         "$root_gen_dir/ui/file_manager/file_manager_resources.pak",
286       ]
287       deps += [
288         "//ash/components/arc/input_overlay/resources",
289         "//ash/public/cpp/resources:ash_public_unscaled_resources",
290         "//ash/webui/file_manager/resources:file_manager_swa_resources",
291         "//ash/webui/file_manager/untrusted_resources:file_manager_untrusted_resources",
292         "//ash/webui/guest_os_installer/resources:resources",
293         "//ash/webui/print_management/resources:resources",
294         "//ash/webui/resources:camera_app_resources",
295         "//ash/webui/resources:color_internals_resources",
296         "//ash/webui/resources:connectivity_diagnostics_resources",
297         "//ash/webui/resources:demo_mode_app_resources",
298         "//ash/webui/resources:diagnostics_app_resources",
299         "//ash/webui/resources:eche_app_resources",
300         "//ash/webui/resources:eche_bundle_resources",
301         "//ash/webui/resources:face_ml_app_bundle_resources",
302         "//ash/webui/resources:face_ml_app_resources",
303         "//ash/webui/resources:face_ml_app_resources",
304         "//ash/webui/resources:face_ml_app_untrusted_resources",
305         "//ash/webui/resources:firmware_update_app_resources",
306         "//ash/webui/resources:help_app_bundle_resources",
307         "//ash/webui/resources:help_app_kids_magazine_bundle_resources",
308         "//ash/webui/resources:help_app_resources",
309         "//ash/webui/resources:media_app_bundle_resources",
310         "//ash/webui/resources:media_app_resources",
311         "//ash/webui/resources:multidevice_debug_resources",
312         "//ash/webui/resources:os_feedback_resources",
313         "//ash/webui/resources:os_feedback_untrusted_resources",
314         "//ash/webui/resources:personalization_app_resources",
315         "//ash/webui/resources:projector_annotator_trusted_resources",
316         "//ash/webui/resources:projector_annotator_untrusted_resources",
317         "//ash/webui/resources:projector_app_bundle_resources",
318         "//ash/webui/resources:projector_app_trusted_resources",
319         "//ash/webui/resources:projector_app_untrusted_resources",
320         "//ash/webui/resources:projector_common_resources",
321         "//ash/webui/resources:scanning_app_resources",
322         "//ash/webui/resources:shimless_rma_resources",
323         "//ash/webui/resources:shortcut_customization_app_resources",
324         "//ash/webui/resources:system_extensions_internals_resources",
325         "//chrome/browser/resources:bluetooth_pairing_dialog_resources",
326         "//chrome/browser/resources:internet_config_dialog_resources",
327         "//chrome/browser/resources:internet_detail_dialog_resources",
328         "//chrome/browser/resources/chromeos:multidevice_setup_resources",
329         "//chrome/browser/resources/chromeos/arc_account_picker:resources",
330         "//chrome/browser/resources/chromeos/assistant_optin:resources",
331         "//chrome/browser/resources/chromeos/audio:resources",
332         "//chrome/browser/resources/chromeos/cloud_upload:resources",
333         "//chrome/browser/resources/chromeos/desk_api:resources",
334         "//chrome/browser/resources/chromeos/emoji_picker:resources",
335         "//chrome/browser/resources/chromeos/gaia_action_buttons:resources",
336         "//chrome/browser/resources/chromeos/launcher_internals:resources",
337         "//chrome/browser/resources/chromeos/login:conditional_resources",
338         "//chrome/browser/resources/chromeos/login:unconditional_resources",
339         "//chrome/browser/resources/chromeos/manage_mirrorsync:resources",
340         "//chrome/browser/resources/chromeos/multidevice_internals:resources",
341         "//chrome/browser/resources/chromeos/network_ui:resources",
342         "//chrome/browser/resources/chromeos/notification_tester:resources",
343         "//chrome/browser/resources/chromeos/password_change:resources",
344         "//chrome/browser/resources/nearby_internals:resources",
345         "//chrome/browser/resources/nearby_share:resources",
346         "//chrome/browser/resources/settings/chromeos:resources",
347         "//chrome/browser/supervised_user:supervised_user_unscaled_resources",
348         "//chromeos/ash/resources",
349         "//chromeos/resources",
350         "//ui/file_manager:file_manager_gen_resources",
351         "//ui/file_manager:resources",
352       ]
353
354       if (!is_official_build) {
355         sources += [
356           "$root_gen_dir/ash/webui/ash_sample_system_web_app_resources.pak",
357           "$root_gen_dir/ash/webui/ash_sample_system_web_app_untrusted_resources.pak",
358         ]
359         deps += [
360           "//ash/webui/resources:sample_system_web_app_resources",
361           "//ash/webui/resources:sample_system_web_app_untrusted_resources",
362         ]
363       }
364
365       if (include_ash_ambient_animation_resources) {
366         sources += [ "$root_gen_dir/ash/ambient/resources/ash_ambient_lottie_resources.pak" ]
367         deps += [ "//ash/ambient/resources:lottie_resources" ]
368       }
369     }
370     if (is_chromeos) {
371       sources += [ "$root_gen_dir/chrome/common/chromeos/extensions/chromeos_system_extensions_resources.pak" ]
372       deps += [ "//chrome/common/chromeos/extensions:resources" ]
373     }
374     if (is_linux || is_chromeos) {
375       sources += [ "$root_gen_dir/chrome/webui_js_error_resources.pak" ]
376       deps += [ "//chrome/browser/resources/webui_js_error:resources" ]
377     }
378     if (!is_android && !is_chromeos_ash) {
379       sources += [
380         "$root_gen_dir/chrome/intro_resources.pak",
381         "$root_gen_dir/chrome/profile_picker_resources.pak",
382         "$root_gen_dir/chrome/welcome_resources.pak",
383       ]
384       deps += [
385         "//chrome/browser/resources/intro:resources",
386         "//chrome/browser/resources/signin/profile_picker:resources",
387         "//chrome/browser/resources/welcome:resources",
388       ]
389     }
390
391     if (is_win || is_mac || is_linux || is_fuchsia) {
392       sources += [
393         "$root_gen_dir/chrome/app_home_resources.pak",
394         "$root_gen_dir/chrome/apps_resources.pak",
395       ]
396       deps += [
397         "//chrome/browser/resources/app_home:resources",
398         "//chrome/browser/resources/ntp4:apps_resources",
399       ]
400     }
401
402     if (is_win || is_mac || is_linux || is_tizen) {
403       sources += [ "$root_gen_dir/chrome/app_settings_resources.pak" ]
404       deps += [ "//chrome/browser/resources/app_settings:resources" ]
405     }
406
407     if (is_win || is_mac || is_linux || is_chromeos_ash) {
408       sources += [ "$root_gen_dir/chrome/connectors_internals_resources.pak" ]
409       deps += [ "//chrome/browser/resources/connectors_internals:resources" ]
410     }
411
412     if (is_win || is_mac || is_linux || is_chromeos_lacros || is_fuchsia) {
413       sources += [ "$root_gen_dir/chrome/browser_switch_resources.pak" ]
414       deps += [ "//chrome/browser/resources/browser_switch:resources" ]
415     }
416
417     if (is_win || is_mac || is_linux || is_chromeos || is_fuchsia) {
418       sources += [ "$root_gen_dir/chrome/discards_resources.pak" ]
419       deps += [ "//chrome/browser/resources/discards:resources" ]
420     }
421
422     if (enable_extensions) {
423       sources += [
424         "$root_gen_dir/chrome/extensions_resources.pak",
425         "$root_gen_dir/chrome/sync_file_system_internals_resources.pak",
426         "$root_gen_dir/extensions/extensions_renderer_resources.pak",
427         "$root_gen_dir/extensions/extensions_resources.pak",
428       ]
429       deps += [
430         "//chrome/browser/resources/extensions:resources",
431         "//chrome/browser/resources/sync_file_system_internals:resources",
432         "//extensions:extensions_resources",
433       ]
434     }
435     if (enable_pdf) {
436       sources += [ "$root_gen_dir/chrome/pdf_resources.pak" ]
437       deps += [ "//chrome/browser/resources/pdf:resources" ]
438     }
439     if (enable_print_preview) {
440       sources += [ "$root_gen_dir/chrome/print_preview_resources.pak" ]
441       deps += [ "//chrome/browser/resources/print_preview:resources" ]
442     }
443     if (enable_webui_tab_strip) {
444       sources += [ "$root_gen_dir/chrome/tab_strip_resources.pak" ]
445       deps += [ "//chrome/browser/resources/tab_strip:resources" ]
446     }
447     if (is_cfm) {
448       sources += [ "$root_gen_dir/chrome/cfm_network_settings_resources.pak" ]
449       deps += [
450         "//chrome/browser/resources/chromeos/chromebox_for_meetings:resources",
451       ]
452     }
453   }
454 }
455
456 # Defines repack() targets used by Chrome. Specifically:
457 # * chrome_100_percent.pak
458 # * chrome_200_percent.pak (optionally)
459 # * resources.pak
460 # * locale .pak files
461 #
462 # Parameters:
463 #   output_dir [required]: Directory to output .pak files. Locale .pak files
464 #       will always be place in $output_dir/locales
465 #   additional_extra_paks: List of extra .pak sources for resources.pak.
466 #   locale_allowlist: if set, override repack_allowlist for locale .pak files.
467 #   files_to_hash: if set, a list of pak file names to generate SHA256 hashes
468 #     for.
469 #   copy_data_to_bundle:
470 #   deps:
471 #   mark_as_data:
472 #   output_dir:
473 #   public_deps:
474 #   repack_allowlist:
475 #   visibility:
476 #     Normal meanings.
477 #
478 template("chrome_paks") {
479   chrome_repack_percent("${target_name}_100_percent") {
480     percent = "100"
481     forward_variables_from(invoker,
482                            [
483                              "copy_data_to_bundle",
484                              "deps",
485                              "mark_as_data",
486                              "output_dir",
487                              "repack_allowlist",
488                              "visibility",
489                            ])
490   }
491
492   if (enable_hidpi) {
493     chrome_repack_percent("${target_name}_200_percent") {
494       percent = "200"
495       forward_variables_from(invoker,
496                              [
497                                "copy_data_to_bundle",
498                                "deps",
499                                "mark_as_data",
500                                "output_dir",
501                                "repack_allowlist",
502                                "visibility",
503                              ])
504     }
505   }
506
507   chrome_extra_paks("${target_name}_extra") {
508     forward_variables_from(invoker,
509                            [
510                              "copy_data_to_bundle",
511                              "deps",
512                              "mark_as_data",
513                              "output_dir",
514                              "repack_allowlist",
515                              "visibility",
516                            ])
517     if (defined(invoker.additional_extra_paks)) {
518       additional_paks = invoker.additional_extra_paks
519     }
520   }
521
522   chrome_repack_locales("${target_name}_locales") {
523     forward_variables_from(invoker,
524                            [
525                              "copy_data_to_bundle",
526                              "deps",
527                              "mark_as_data",
528                              "visibility",
529                            ])
530     if (defined(invoker.locale_allowlist)) {
531       repack_allowlist = invoker.locale_allowlist
532     } else if (defined(invoker.repack_allowlist)) {
533       repack_allowlist = invoker.repack_allowlist
534     }
535
536     input_locales = platform_pak_locales
537     output_dir = "${invoker.output_dir}/locales"
538
539     if (is_mac) {
540       output_locales = locales_as_apple_outputs
541     } else {
542       output_locales = platform_pak_locales
543     }
544   }
545
546   group(target_name) {
547     forward_variables_from(invoker, [ "deps" ])
548     public_deps = [
549       ":${target_name}_100_percent",
550       ":${target_name}_extra",
551       ":${target_name}_locales",
552     ]
553     if (enable_hidpi) {
554       public_deps += [ ":${target_name}_200_percent" ]
555     }
556     if (defined(invoker.public_deps)) {
557       public_deps += invoker.public_deps
558     }
559   }
560
561   if (defined(invoker.files_to_hash)) {
562     _prefix = "$target_gen_dir/app/${target_name}_integrity"
563     _integrity_outputs = [
564       "$_prefix.cc",
565       "$_prefix.h",
566     ]
567
568     action("${target_name}_integrity_hash") {
569       script = "tools/build/sha256_file.py"
570       outputs = _integrity_outputs
571       inputs = []
572       foreach(file, invoker.files_to_hash) {
573         inputs += [ "${invoker.output_dir}/$file" ]
574       }
575
576       args = rebase_path([ _prefix ] + inputs, root_build_dir)
577
578       deps = [ ":${invoker.target_name}" ]
579     }
580
581     source_set("${target_name}_integrity") {
582       sources = _integrity_outputs
583       deps = [ ":${target_name}_hash" ]
584     }
585   }
586 }