[App banners] Start addressing race conditions
[chromium-blink-merge.git] / remoting / resources / BUILD.gn
blob0328231eac2eda76f5e3d91db1e02c3e3936104e
1 # Copyright 2014 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.
5 import("//tools/grit/grit_rule.gni")
7 # See also remoting_locales_with_underscores below.
8 remoting_locales = [
9   "am",
10   "ar",
11   "bg",
12   "bn",
13   "ca",
14   "cs",
15   "da",
16   "de",
17   "el",
18   "en",
19   "en-GB",
20   "es",
21   "es-419",
22   "et",
23   "fa",
24   "fake-bidi",
25   "fi",
26   "fil",
27   "fr",
28   "gu",
29   "he",
30   "hi",
31   "hr",
32   "hu",
33   "id",
34   "it",
35   "ja",
36   "kn",
37   "ko",
38   "lt",
39   "lv",
40   "ml",
41   "mr",
42   "ms",
43   "nb",
44   "nl",
45   "pl",
46   "pt-BR",
47   "pt-PT",
48   "ro",
49   "ru",
50   "sk",
51   "sl",
52   "sr",
53   "sv",
54   "sw",
55   "ta",
56   "te",
57   "th",
58   "tr",
59   "uk",
60   "vi",
61   "zh-CN",
62   "zh-TW",
65 # Some locales have hyphens in the names but for some uses underscores are
66 # needed.
67 remoting_locales_with_underscores = remoting_locales
68 remoting_locales_with_underscores -= [
69   "en-GB",
70   "es-419",
71   "fake-bidi",
72   "pt-BR",
73   "pt-PT",
74   "zh-CN",
75   "zh-TW",
77 remoting_locales_with_underscores += [
78   "en_GB",
79   "es_419",
80   "fake_bidi",
81   "pt_BR",
82   "pt_PT",
83   "zh_CN",
84   "zh_TW",
87 if (is_chromeos) {
88   remoting_locales += [ "en-US" ]
89   remoting_locales_with_underscores += [ "en_US" ]
92 group("resources") {
93   deps = [
94     ":copy_locales",
95     ":strings",
97     #":verify_resources",  TODO(GYP) enable this.
98   ]
101 # TODO(GYP) enable verify_resources. The bots are complaining about
102 # gen/main.html not being found but this doesn't seems to reproduce locally.
103 if (false) {
104   action("verify_resources") {
105     script = "//remoting/tools/verify_resources.py"
107     sources_to_verify = [
108       "$root_gen_dir/main.html",
109       "../base/resources_unittest.cc",
110       "../host/continue_window_mac.mm",
111       "../host/disconnect_window_mac.mm",
112       "../host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2",
113       "../host/mac/me2me_preference_pane-InfoPlist.strings.jinja2",
114       "../host/win/core.rc.jinja2",
115       "../host/win/host_messages.mc.jinja2",
116       "../host/win/version.rc.jinja2",
117       "../resources/play_store_resources.cc",
118       "../webapp/background/background.js",
119       "../webapp/butter_bar.js",
120       "../webapp/client_screen.js",
121       "../webapp/error.js",
122       "../webapp/host_list.js",
123       "../webapp/host_setup_dialog.js",
124       "../webapp/host_table_entry.js",
125       "../webapp/manifest.json.jinja2",
126       "../webapp/paired_client_manager.js",
127       "../webapp/remoting.js",
128       "../webapp/window_frame.js",
129     ]
131     inputs = [ "remoting_strings.grd" ] + sources_to_verify
133     stampfile = "$root_build_dir/remoting_resources_verified_stamp"
134     outputs = [
135       stampfile,
136     ]
138     args = [
139              "-t",
140              rebase_path(stampfile, root_build_dir),
141              "-r",
142              rebase_path("remoting_strings.grd", root_build_dir),
143            ] + rebase_path(sources_to_verify, root_build_dir)
145     deps = [
146       "//remoting/webapp:html",
147     ]  # Generates main.html.
148   }
149 }  # if false
151 grit("strings") {
152   source = "remoting_strings.grd"
153   output_name = "remoting_strings"
155   # The grd file encodes "remoting/..." in the name, so root everything in the
156   # generated file root.
157   output_dir = root_gen_dir
159   outputs = [
160     "remoting/base/string_resources.h",
161   ]
163   # The grd produces a *.pak file and a messages.json file (this one uses
164   # underscores instead of hyphens) for each locale.
165   outputs +=
166       process_file_template(remoting_locales,
167                             [ "remoting/resources/{{source_name_part}}.pak" ])
169   messages_locales = remoting_locales_with_underscores
170   if (!is_chromeos) {
171     # The messages output includes a separate one for en-US that the pak ones
172     # don't have. We don't need to do this on ChromeOS since en_US is in the
173     # locales list be default there.
174     messages_locales += [ "en_US" ]
175   }
176   outputs += process_file_template(
177           messages_locales,
178           [ "remoting/webapp/_locales/{{source_name_part}}/messages.json" ])
181 action("copy_locales") {
182   script = "../tools/build/remoting_copy_locales.py"
184   # The gyp build calls out to Python, but the Python just computes a simple
185   # replacement over the locales. Here, we can do this in GN script by
186   # pretending the locale list is a list of files. The {{source_name_part}}
187   # will just expand to the locale name.
188   inputs = process_file_template(remoting_locales,
189                                  [ "$target_gen_dir/{{source_name_part}}.pak" ])
191   # Likewise, process the outputs in the same way as the inputs.
192   if (is_mac || is_ios) {
193     # On mac, use underscores instead of hyphens and put the files in a
194     # different place.
195     outputs = process_file_template(
196             remoting_locales_with_underscores,
197             [ "$root_build_dir/remoting/resources/{{source_name_part}}.lproj/locale.pak" ])
198   } else {
199     outputs = process_file_template(
200             remoting_locales,
201             [ "$root_build_dir/remoting_locales/{{source_name_part}}.pak" ])
202   }
204   args = [
205            "-p",
206            os,
207            "-g",
208            rebase_path(root_gen_dir, root_build_dir),
209            "-x",
210            rebase_path(root_out_dir, root_build_dir),
211          ] + remoting_locales
213   deps = [
214     ":strings",
215   ]