[M67 Dev][Tizen] Integrate GN and set up build environment
[platform/framework/web/chromium-efl.git] / chrome / chrome_paks.gni
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
3 # found in the LICENSE file.
4
5 import("//build/config/locales.gni")
6 import("//chrome/common/features.gni")
7 import("//extensions/buildflags/buildflags.gni")
8 import("//ui/base/ui_features.gni")
9 import("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.
19 template("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 = [
32       "$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",
36       "$root_gen_dir/third_party/blink/public/resources/blink_scaled_resources_${percent}_percent.pak",
37       "$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",
47       "//third_party/blink/public:scaled_resources_${percent}_percent",
48       "//ui/resources",
49     ]
50
51     if (defined(invoker.deps)) {
52       deps += invoker.deps
53     }
54
55     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) {
60       sources += [
61         "$root_gen_dir/ash/components/resources/ash_components_resources_${percent}_percent.pak",
62         "$root_gen_dir/ash/resources/ash_resources_${percent}_percent.pak",
63         "$root_gen_dir/ui/chromeos/resources/ui_chromeos_resources_${percent}_percent.pak",
64       ]
65       deps += [
66         "//ash/components/resources",
67         "//ash/resources",
68         "//ui/chromeos/resources",
69       ]
70     }
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) {
76       sources += [ "$root_gen_dir/ui/app_list/resources/app_list_resources_${percent}_percent.pak" ]
77       deps += [ "//ui/app_list/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                              "repack_whitelist",
90                              "visibility",
91                            ])
92     output = "${invoker.output_dir}/resources.pak"
93     sources = [
94       "$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",
99       "$root_gen_dir/chrome/quota_internals_resources.pak",
100       "$root_gen_dir/chrome/task_scheduler_internals_resources.pak",
101       "$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",
105       "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
106       "$root_gen_dir/net/net_resources.pak",
107       "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak",
108       "$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",
115       "//chrome/browser/resources:quota_internals_resources",
116       "//chrome/browser/resources:task_scheduler_internals_resources",
117       "//chrome/browser/resources:translate_internals_resources",
118       "//chrome/common:resources",
119       "//components/resources",
120       "//content:resources",
121       "//content/browser/tracing:resources",
122       "//mojo/public/js:resources",
123       "//net:net_resources",
124       "//third_party/blink/public:resources",
125       "//ui/resources",
126     ]
127     if (defined(invoker.deps)) {
128       deps += invoker.deps
129     }
130     if (defined(invoker.additional_paks)) {
131       sources += invoker.additional_paks
132     }
133
134     if (is_android) {
135       sources += [ "$root_gen_dir/chrome/webapks_ui_resources.pak" ]
136       deps += [ "//chrome/browser/resources:webapks_ui_resources" ]
137     } else {
138       # New paks should be added here by default.
139       sources += [
140         "$root_gen_dir/chrome/component_extension_resources.pak",
141         "$root_gen_dir/chrome/settings_resources.pak",
142         "$root_gen_dir/content/browser/devtools/devtools_resources.pak",
143         "$root_gen_dir/headless/headless_lib_resources.pak",
144       ]
145       deps += [
146         "//chrome/browser/resources:component_extension_resources",
147         "//chrome/browser/resources:settings_resources",
148         "//content/browser/devtools:devtools_resources",
149         "//headless:resources",
150       ]
151     }
152     if (is_chromeos) {
153       sources += [
154         "$root_gen_dir/chrome/multidevice_setup_resources.pak",
155         "$root_gen_dir/chromeos/chromeos_resources.pak",
156         "$root_gen_dir/components/chrome_apps/chrome_apps_resources.pak",
157         "$root_gen_dir/ui/file_manager/file_manager_resources.pak",
158       ]
159       deps += [
160         "//chrome/browser/resources/chromeos:multidevice_setup_resources",
161         "//chromeos/resources",
162         "//components/chrome_apps:resources",
163         "//ui/file_manager:resources",
164       ]
165     }
166     if (enable_extensions) {
167       sources += [
168         "$root_gen_dir/chrome/extensions_resources.pak",
169         "$root_gen_dir/chrome/sync_file_system_internals_resources.pak",
170         "$root_gen_dir/extensions/extensions_renderer_resources.pak",
171         "$root_gen_dir/extensions/extensions_resources.pak",
172       ]
173       deps += [
174         "//chrome/browser/resources:extensions_resources",
175         "//chrome/browser/resources:sync_file_system_internals_resources",
176         "//extensions:extensions_resources",
177       ]
178     }
179     if (enable_print_preview) {
180       sources += [ "$root_gen_dir/chrome/print_preview_resources.pak" ]
181       deps += [ "//chrome/browser/resources:print_preview_resources" ]
182     }
183   }
184 }
185
186 # Defines repack() targets used by Chrome. Specifically:
187 # * chrome_100_percent.pak
188 # * chrome_200_percent.pak (optionally)
189 # * resources.pak
190 # * locale .pak files
191 #
192 # Paramters:
193 #   output_dir [required]: Directory to output .pak files. Locale .pak files
194 #       will always be place in $output_dir/locales
195 #   additional_extra_paks: List of extra .pak sources for resources.pak.
196 #   locale_whitelist: if set, override repack_whitelist for locale .pak files.
197 #   copy_data_to_bundle:
198 #   deps:
199 #   output_dir:
200 #   public_deps:
201 #   repack_whitelist:
202 #   visibility:
203 #     Normal meanings.
204 #
205 template("chrome_paks") {
206   chrome_repack_percent("${target_name}_100_percent") {
207     percent = "100"
208     forward_variables_from(invoker,
209                            [
210                              "copy_data_to_bundle",
211                              "deps",
212                              "output_dir",
213                              "repack_whitelist",
214                              "visibility",
215                            ])
216   }
217
218   if (enable_hidpi) {
219     chrome_repack_percent("${target_name}_200_percent") {
220       percent = "200"
221       forward_variables_from(invoker,
222                              [
223                                "copy_data_to_bundle",
224                                "deps",
225                                "output_dir",
226                                "repack_whitelist",
227                                "visibility",
228                              ])
229     }
230   }
231
232   chrome_extra_paks("${target_name}_extra") {
233     forward_variables_from(invoker,
234                            [
235                              "copy_data_to_bundle",
236                              "deps",
237                              "output_dir",
238                              "repack_whitelist",
239                              "visibility",
240                            ])
241     if (defined(invoker.additional_extra_paks)) {
242       additional_paks = invoker.additional_extra_paks
243     }
244   }
245
246   chrome_repack_locales("${target_name}_locales") {
247     forward_variables_from(invoker,
248                            [
249                              "copy_data_to_bundle",
250                              "deps",
251                              "visibility",
252                            ])
253     if (defined(invoker.locale_whitelist)) {
254       repack_whitelist = invoker.locale_whitelist
255     } else if (defined(invoker.repack_whitelist)) {
256       repack_whitelist = invoker.repack_whitelist
257     }
258
259     input_locales = locales
260     output_dir = "${invoker.output_dir}/locales"
261
262     if (is_mac) {
263       output_locales = locales_as_mac_outputs
264     } else {
265       output_locales = locales
266     }
267   }
268
269   group(target_name) {
270     forward_variables_from(invoker, [ "deps" ])
271     public_deps = [
272       ":${target_name}_100_percent",
273       ":${target_name}_extra",
274       ":${target_name}_locales",
275     ]
276     if (enable_hidpi) {
277       public_deps += [ ":${target_name}_200_percent" ]
278     }
279     if (defined(invoker.public_deps)) {
280       public_deps += invoker.public_deps
281     }
282   }
283 }