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

Side by Side Diff: remoting/webapp/build_template.gni

Issue 1179873005: [AppRemoting] Break out AppRemoting shared module (re-land). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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 | « remoting/webapp/build-webapp.py ('k') | remoting/webapp/crd/js/desktop_remoting.js » ('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 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 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 # Keep in sync with 'remoting_webapp' target in remoting/remoting_client.gypi. 5 # Keep in sync with 'remoting_webapp' target in remoting/remoting_client.gypi.
6 6
7 import("//build/config/chrome_build.gni") 7 import("//build/config/chrome_build.gni")
8 import("//remoting/remoting_locales.gni") 8 import("//remoting/remoting_locales.gni")
9 import("//remoting/remoting_options.gni") 9 import("//remoting/remoting_options.gni")
10 import("//remoting/remoting_version.gni") 10 import("//remoting/remoting_version.gni")
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 args += rebase_path(js_files, root_build_dir) 72 args += rebase_path(js_files, root_build_dir)
73 } 73 }
74 } 74 }
75 75
76 action(target_name) { 76 action(target_name) {
77 html_template_file = invoker.html_template_file 77 html_template_file = invoker.html_template_file
78 html_template_include_files = invoker.html_template_include_files 78 html_template_include_files = invoker.html_template_include_files
79 js_files = invoker.js_files 79 js_files = invoker.js_files
80 html_output = invoker.html_output 80 html_output = invoker.html_output
81 81
82 script = "build-html.py" 82 script = rebase_path("//remoting/webapp/build-html.py", root_build_dir)
83 83
84 inputs = [ html_template_file ] + html_template_include_files + js_files 84 inputs = [ html_template_file ] + html_template_include_files + js_files
85 85
86 outputs = [ 86 outputs = [
87 html_output, 87 html_output,
88 ] 88 ]
89 89
90 if (target_jscompile != "") { 90 if (target_jscompile != "") {
91 deps = [ 91 deps = [
92 ":$target_jscompile", 92 ":$target_jscompile",
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 main_html_output = "$target_gen_dir/html/$target_name/main.html" 149 main_html_output = "$target_gen_dir/html/$target_name/main.html"
150 150
151 build_webapp_html(main_html) { 151 build_webapp_html(main_html) {
152 html_template_file = remoting_webapp_template_main 152 html_template_file = remoting_webapp_template_main
153 html_template_include_files = remoting_webapp_template_files 153 html_template_include_files = remoting_webapp_template_files
154 js_files = remoting_webapp_crd_main_html_all_js_files 154 js_files = remoting_webapp_crd_main_html_all_js_files
155 html_output = main_html_output 155 html_output = main_html_output
156 } 156 }
157 157
158 action(target_name) { 158 action(target_name) {
159 script = "build-webapp.py" 159 script = "//remoting/webapp/build-webapp.py"
160 160
161 webapp_type = invoker.webapp_type 161 webapp_type = invoker.webapp_type
162 output_dir = invoker.output_dir 162 output_dir = invoker.output_dir
163 zip_path = invoker.zip_path 163 zip_path = invoker.zip_path
164 extra_files = invoker.extra_files 164 extra_files = invoker.extra_files
165 165
166 inputs = 166 inputs =
167 [ rebase_path("crd/manifest.json.jinja2", root_build_dir) ] + 167 [ rebase_path("crd/manifest.json.jinja2", root_build_dir) ] +
168 remoting_version_files + 168 remoting_version_files +
169 rebase_path(remoting_webapp_crd_files, root_build_dir) + extra_files 169 rebase_path(remoting_webapp_crd_files, root_build_dir) + extra_files
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 "$remoting_use_gcd", 219 "$remoting_use_gcd",
220 ] 220 ]
221 } 221 }
222 } 222 }
223 223
224 template("app_remoting_webapp") { 224 template("app_remoting_webapp") {
225 locales_listfile = target_name + "_locales" 225 locales_listfile = target_name + "_locales"
226 locales_listfile_output = "$target_gen_dir/${target_name}_locales.txt" 226 locales_listfile_output = "$target_gen_dir/${target_name}_locales.txt"
227 227
228 build_locales_listfile(locales_listfile) { 228 build_locales_listfile(locales_listfile) {
229 # TODO(garykac) Replace resources with empty stub rather than duplicating
230 # all the resources needed by the shared module.
231 # Template uses locales_listfile_output from outer scope.
232 }
233
234 action(target_name) {
235 script = "//remoting/webapp/build-webapp.py"
236
237 app_key = invoker.app_key
238 app_id = invoker.app_id
239 app_client_id = invoker.app_client_id
240 app_vendor = invoker.app_vendor
241 app_name = invoker.app_name
242 app_fullname = invoker.app_fullname
243 app_description = invoker.app_description
244 app_capabilities = invoker.app_capabilities
245 manifest_key = invoker.manifest_key
246
247 # These asserts are so that these variables get marked as being used so
248 # that GN doesn't complain about them.
249 assert(app_key != "" || app_key == "")
250 assert(app_id != "" || app_id == "")
251
252 ar_base_path = "//remoting/webapp/app_remoting"
253 if (app_vendor != "") {
254 ar_app_path = "$ar_base_path/internal/apps/$app_vendor/$app_name"
255 } else {
256 ar_app_path = "$ar_base_path/apps/$app_name"
257 }
258 ar_app_manifest = "$ar_app_path/manifest.json.jinja2"
259 ar_app_manifest_common = "$ar_base_path/manifest_common.json.jinja2"
260
261 output_dir = "remoting/app_remoting/$ar_service_environment/$target_name"
262 zip_path = "remoting/app_remoting/$ar_service_environment/$target_name.zip"
263
264 # TODO(garykac) Move this list of files into files.gni.
265 ar_app_specific_files = [
266 "$ar_app_path/icon16.png",
267 "$ar_app_path/icon48.png",
268 "$ar_app_path/icon128.png",
269 "$ar_app_path/loading_splash.png",
270 ]
271
272 ar_webapp_files =
273 ar_app_specific_files + ar_vendor_js_files + ar_vendor_html_files
274
275 inputs = [
276 rebase_path(ar_app_manifest, root_build_dir),
277 rebase_path(ar_app_manifest_common, root_build_dir),
278 ] + remoting_version_files + ar_webapp_files
279
280 outputs = [
281 "$target_gen_dir/$zip_path",
282 ]
283
284 deps = [
285 ":$locales_listfile",
286 "//remoting/resources",
287 ]
288
289 # Create a file that contains a list of all the resource files needed
290 # to build the webapp. This is needed to avoid problems on platforms that
291 # limit the size of a command line.
292 file_list = "$target_gen_dir/${target_name}_files.txt"
293 files = []
294 files += rebase_path(ar_webapp_files, root_build_dir)
295 write_file(file_list, files)
296
297 args = [
298 buildtype,
299 version_full,
300 output_dir,
301 zip_path,
302 rebase_path(ar_app_manifest, root_build_dir),
303 "app_remoting", # Web app type
304 ]
305 args += [
306 "--files_listfile",
307 rebase_path(file_list, root_build_dir),
308 ]
309 args += [
310 "--locales_listfile",
311 rebase_path(locales_listfile_output, root_build_dir),
312 ]
313 args += [
314 "--jinja_paths",
315 rebase_path("//remoting/webapp/app_remoting", root_build_dir),
316 ]
317
318 if (is_debug) {
319 # Normally, the app-id for the orchestrator is automatically extracted
320 # from the webapp's extension id, but that approach doesn't work for
321 # dev webapp builds (since they all share the same dev extension id).
322 # The --appid arg will create a webapp that registers the given app-id
323 # rather than using the extension id.
324 # This is only done for Dev apps because the app-id for Release apps
325 # *must* match the extension id.
326 args += [
327 "--appid",
328 app_id,
329 ]
330 }
331
332 args += [
333 "--app_name",
334 app_fullname,
335 ]
336 args += [
337 "--app_description",
338 app_description,
339 ]
340 args += [ "--app_capabilities" ] + app_capabilities
341 args += [
342 "--service_environment",
343 ar_service_environment,
344 ]
345 args += [
346 "--manifest_key",
347 manifest_key,
348 ]
349 args += [
350 "--app_client_id",
351 app_client_id,
352 ]
353 }
354 }
355
356 template("app_remoting_shared_module") {
357 locales_listfile = target_name + "_locales"
358 locales_listfile_output = "$target_gen_dir/${target_name}_locales.txt"
359
360 build_locales_listfile(locales_listfile) {
229 # Template uses locales_listfile_output from outer scope. 361 # Template uses locales_listfile_output from outer scope.
230 } 362 }
231 363
232 feedback_consent_html = target_name + "_feedback_consent_html" 364 feedback_consent_html = target_name + "_feedback_consent_html"
233 feedback_consent_html_output = 365 feedback_consent_html_output =
234 "$target_gen_dir/html/$target_name/feedback_consent.html" 366 "$target_gen_dir/html/$target_name/feedback_consent.html"
235 367
236 build_webapp_html(feedback_consent_html) { 368 build_webapp_html(feedback_consent_html) {
237 html_template_file = ar_feedback_consent_template 369 html_template_file = ar_feedback_consent_template
238 html_template_include_files = [] 370 html_template_include_files = []
(...skipping 29 matching lines...) Expand all
268 wcs_sandbox_html = target_name + "_wcs_sandbox_html" 400 wcs_sandbox_html = target_name + "_wcs_sandbox_html"
269 wcs_sandbox_html_output = "$target_gen_dir/html/$target_name/wcs_sandbox.html" 401 wcs_sandbox_html_output = "$target_gen_dir/html/$target_name/wcs_sandbox.html"
270 402
271 build_webapp_html(wcs_sandbox_html) { 403 build_webapp_html(wcs_sandbox_html) {
272 html_template_file = remoting_webapp_template_wcs_sandbox 404 html_template_file = remoting_webapp_template_wcs_sandbox
273 html_template_include_files = [] 405 html_template_include_files = []
274 js_files = remoting_webapp_wcs_sandbox_html_all_js_files 406 js_files = remoting_webapp_wcs_sandbox_html_all_js_files
275 html_output = wcs_sandbox_html_output 407 html_output = wcs_sandbox_html_output
276 } 408 }
277 409
410 background_html = target_name + "_background_html"
411 background_html_output =
412 "$target_gen_dir/html/$target_name/ar_background.html"
413
414 build_webapp_html(background_html) {
415 html_template_file = ar_background_template
416 html_template_include_files = []
417 js_files = ar_background_html_js_files
418 html_output = background_html_output
419 }
420
278 main_html = target_name + "_main_html" 421 main_html = target_name + "_main_html"
279 main_html_output = "$target_gen_dir/html/$target_name/main.html" 422 main_html_output = "$target_gen_dir/html/$target_name/main.html"
280 423
281 build_webapp_html(main_html) { 424 build_webapp_html(main_html) {
282 html_template_file = ar_main_template 425 html_template_file = ar_main_template
283 html_template_include_files = ar_main_template_files 426 html_template_include_files = ar_main_template_files
284 js_files = ar_main_js_files 427 js_files = ar_main_js_files
285 html_output = main_html_output 428 html_output = main_html_output
286 } 429 }
287 430
288 action(target_name) { 431 action(target_name) {
289 script = "build-webapp.py" 432 script = "build-webapp.py"
290 433
291 app_key = invoker.app_key
292 app_id = invoker.app_id
293 app_client_id = invoker.app_client_id 434 app_client_id = invoker.app_client_id
294 app_name = invoker.app_name 435 app_name = invoker.app_name
436 app_fullname = invoker.app_fullname
295 app_description = invoker.app_description 437 app_description = invoker.app_description
296 app_capabilities = invoker.app_capabilities
297 manifest_key = invoker.manifest_key 438 manifest_key = invoker.manifest_key
298 439
299 # These asserts are so that these variables get marked as being used so 440 ar_path = "app_remoting/$app_name"
300 # that GN doesn't complain about them. 441 ar_manifest = "$ar_path/manifest.json"
301 assert(app_key != "" || app_key == "")
302 assert(app_id != "" || app_id == "")
303 442
304 # TODO(garykac) For internal targets, we need to extract the vendor and app 443 output_dir = "remoting/app_remoting/$target_name"
305 # name from the target. 444 zip_path = "remoting/app_remoting/$target_name.zip"
306 ar_app_name = "sample_app" #target_name
307 ar_app_path = "app_remoting/apps/$ar_app_name"
308 ar_app_manifest = "$ar_app_path/manifest.json.jinja2"
309 ar_app_manifest_common = "app_remoting/manifest_common.json.jinja2"
310
311 output_dir = "remoting/app_remoting/$ar_service_environment/$target_name"
312 zip_path = "remoting/app_remoting/$ar_service_environment/$target_name.zip"
313
314 ar_app_specific_files = [
315 "$ar_app_path/icon16.png",
316 "$ar_app_path/icon48.png",
317 "$ar_app_path/icon128.png",
318 "$ar_app_path/loading_splash.png",
319 ]
320 445
321 ar_generated_html_files = [ 446 ar_generated_html_files = [
447 background_html_output,
322 feedback_consent_html_output, 448 feedback_consent_html_output,
323 loading_window_html_output, 449 loading_window_html_output,
324 message_window_html_output, 450 message_window_html_output,
325 wcs_sandbox_html_output, 451 wcs_sandbox_html_output,
326 main_html_output, 452 main_html_output,
327 ] 453 ]
328 454
329 ar_webapp_files = 455 ar_webapp_files =
330 ar_app_specific_files + ar_shared_resource_files + ar_all_js_files 456 ar_shared_resource_files + ar_all_js_files + ar_generated_html_files
331 457
332 inputs = [ 458 inputs = [ rebase_path(ar_manifest, root_build_dir) ] +
333 rebase_path(ar_app_manifest, root_build_dir), 459 remoting_version_files + ar_webapp_files
334 rebase_path(ar_app_manifest_common, root_build_dir),
335 ] + remoting_version_files + ar_webapp_files
336 460
337 outputs = [ 461 outputs = [
338 "$target_gen_dir/$zip_path", 462 "$target_gen_dir/$zip_path",
339 ] 463 ]
340 464
341 deps = [ 465 deps = [
342 ":$locales_listfile", 466 ":$locales_listfile",
343 ":$feedback_consent_html", 467 ":$feedback_consent_html",
344 ":$loading_window_html", 468 ":$loading_window_html",
345 ":$message_window_html", 469 ":$message_window_html",
346 ":$wcs_sandbox_html", 470 ":$wcs_sandbox_html",
347 ":$main_html", 471 ":$main_html",
348 "//remoting/resources", 472 "//remoting/resources",
349 ] 473 ]
350 474
351 # Create a file that contains a list of all the resource files needed 475 # Create a file that contains a list of all the resource files needed
352 # to build the webapp. This is needed to avoid problems on platforms that 476 # to build the webapp. This is needed to avoid problems on platforms that
353 # limit the size of a command line. 477 # limit the size of a command line.
354 file_list = "$target_gen_dir/${target_name}_files.txt" 478 file_list = "$target_gen_dir/${target_name}_files.txt"
355 files = [] 479 files = []
356 files += rebase_path(ar_generated_html_files, root_build_dir)
357 files += rebase_path(ar_webapp_files, root_build_dir) 480 files += rebase_path(ar_webapp_files, root_build_dir)
358 write_file(file_list, files) 481 write_file(file_list, files)
359 482
360 args = [ 483 args = [
361 buildtype, 484 buildtype,
362 version_full, 485 version_full,
363 output_dir, 486 output_dir,
364 zip_path, 487 zip_path,
365 rebase_path(ar_app_manifest, root_build_dir), 488 rebase_path(ar_manifest, root_build_dir),
366 "app_remoting", # Web app type 489 "shared_module", # Web app type
367 ] 490 ]
368 args += [ 491 args += [
369 "--files_listfile", 492 "--files_listfile",
370 rebase_path(file_list, root_build_dir), 493 rebase_path(file_list, root_build_dir),
371 ] 494 ]
372 args += [ 495 args += [
373 "--locales_listfile", 496 "--locales_listfile",
374 rebase_path(locales_listfile_output, root_build_dir), 497 rebase_path(locales_listfile_output, root_build_dir),
375 ] 498 ]
376 args += [
377 "--jinja_paths",
378 rebase_path("app_remoting", root_build_dir),
379 ]
380
381 if (is_debug) {
382 # Normally, the app-id for the orchestrator is automatically extracted
383 # from the webapp's extension id, but that approach doesn't work for
384 # dev webapp builds (since they all share the same dev extension id).
385 # The --appid arg will create a webapp that registers the given app-id
386 # rather than using the extension id.
387 # This is only done for Dev apps because the app-id for Release apps
388 # *must* match the extension id.
389 args += [
390 "--appid",
391 app_id,
392 ]
393 }
394 499
395 args += [ 500 args += [
396 "--app_name", 501 "--app_name",
397 app_name, 502 app_fullname,
398 ] 503 ]
399 args += [ 504 args += [
400 "--app_description", 505 "--app_description",
401 app_description, 506 app_description,
402 ] 507 ]
403 args += [ "--app_capabilities" ] + app_capabilities
404 args += [
405 "--service_environment",
406 ar_service_environment,
407 ]
408 args += [ 508 args += [
409 "--manifest_key", 509 "--manifest_key",
410 manifest_key, 510 manifest_key,
411 ] 511 ]
412 args += [ 512 args += [
413 "--app_client_id", 513 "--app_client_id",
414 app_client_id, 514 app_client_id,
415 ] 515 ]
416 } 516 }
417 } 517 }
OLDNEW
« no previous file with comments | « remoting/webapp/build-webapp.py ('k') | remoting/webapp/crd/js/desktop_remoting.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698