summaryrefslogtreecommitdiffstats
path: root/remoting/webapp/build_template.gni
diff options
context:
space:
mode:
Diffstat (limited to 'remoting/webapp/build_template.gni')
-rw-r--r--remoting/webapp/build_template.gni214
1 files changed, 157 insertions, 57 deletions
diff --git a/remoting/webapp/build_template.gni b/remoting/webapp/build_template.gni
index 0eff3e6..ebbd44c 100644
--- a/remoting/webapp/build_template.gni
+++ b/remoting/webapp/build_template.gni
@@ -79,7 +79,7 @@ template("build_webapp_html") {
js_files = invoker.js_files
html_output = invoker.html_output
- script = "build-html.py"
+ script = rebase_path("//remoting/webapp/build-html.py", root_build_dir)
inputs = [ html_template_file ] + html_template_include_files + js_files
@@ -156,7 +156,7 @@ template("desktop_remoting_webapp") {
}
action(target_name) {
- script = "build-webapp.py"
+ script = "//remoting/webapp/build-webapp.py"
webapp_type = invoker.webapp_type
output_dir = invoker.output_dir
@@ -226,6 +226,138 @@ template("app_remoting_webapp") {
locales_listfile_output = "$target_gen_dir/${target_name}_locales.txt"
build_locales_listfile(locales_listfile) {
+ # TODO(garykac) Replace resources with empty stub rather than duplicating
+ # all the resources needed by the shared module.
+ # Template uses locales_listfile_output from outer scope.
+ }
+
+ action(target_name) {
+ script = "//remoting/webapp/build-webapp.py"
+
+ app_key = invoker.app_key
+ app_id = invoker.app_id
+ app_client_id = invoker.app_client_id
+ app_vendor = invoker.app_vendor
+ app_name = invoker.app_name
+ app_fullname = invoker.app_fullname
+ app_description = invoker.app_description
+ app_capabilities = invoker.app_capabilities
+ manifest_key = invoker.manifest_key
+
+ # These asserts are so that these variables get marked as being used so
+ # that GN doesn't complain about them.
+ assert(app_key != "" || app_key == "")
+ assert(app_id != "" || app_id == "")
+
+ ar_base_path = "//remoting/webapp/app_remoting"
+ if (app_vendor != "") {
+ ar_app_path = "$ar_base_path/internal/apps/$app_vendor/$app_name"
+ } else {
+ ar_app_path = "$ar_base_path/apps/$app_name"
+ }
+ ar_app_manifest = "$ar_app_path/manifest.json.jinja2"
+ ar_app_manifest_common = "$ar_base_path/manifest_common.json.jinja2"
+
+ output_dir = "remoting/app_remoting/$ar_service_environment/$target_name"
+ zip_path = "remoting/app_remoting/$ar_service_environment/$target_name.zip"
+
+ # TODO(garykac) Move this list of files into files.gni.
+ ar_app_specific_files = [
+ "$ar_app_path/icon16.png",
+ "$ar_app_path/icon48.png",
+ "$ar_app_path/icon128.png",
+ "$ar_app_path/loading_splash.png",
+ ]
+
+ ar_webapp_files =
+ ar_app_specific_files + ar_vendor_js_files + ar_vendor_html_files
+
+ inputs = [
+ rebase_path(ar_app_manifest, root_build_dir),
+ rebase_path(ar_app_manifest_common, root_build_dir),
+ ] + remoting_version_files + ar_webapp_files
+
+ outputs = [
+ "$target_gen_dir/$zip_path",
+ ]
+
+ deps = [
+ ":$locales_listfile",
+ "//remoting/resources",
+ ]
+
+ # Create a file that contains a list of all the resource files needed
+ # to build the webapp. This is needed to avoid problems on platforms that
+ # limit the size of a command line.
+ file_list = "$target_gen_dir/${target_name}_files.txt"
+ files = []
+ files += rebase_path(ar_webapp_files, root_build_dir)
+ write_file(file_list, files)
+
+ args = [
+ buildtype,
+ version_full,
+ output_dir,
+ zip_path,
+ rebase_path(ar_app_manifest, root_build_dir),
+ "app_remoting", # Web app type
+ ]
+ args += [
+ "--files_listfile",
+ rebase_path(file_list, root_build_dir),
+ ]
+ args += [
+ "--locales_listfile",
+ rebase_path(locales_listfile_output, root_build_dir),
+ ]
+ args += [
+ "--jinja_paths",
+ rebase_path("//remoting/webapp/app_remoting", root_build_dir),
+ ]
+
+ if (is_debug) {
+ # Normally, the app-id for the orchestrator is automatically extracted
+ # from the webapp's extension id, but that approach doesn't work for
+ # dev webapp builds (since they all share the same dev extension id).
+ # The --appid arg will create a webapp that registers the given app-id
+ # rather than using the extension id.
+ # This is only done for Dev apps because the app-id for Release apps
+ # *must* match the extension id.
+ args += [
+ "--appid",
+ app_id,
+ ]
+ }
+
+ args += [
+ "--app_name",
+ app_fullname,
+ ]
+ args += [
+ "--app_description",
+ app_description,
+ ]
+ args += [ "--app_capabilities" ] + app_capabilities
+ args += [
+ "--service_environment",
+ ar_service_environment,
+ ]
+ args += [
+ "--manifest_key",
+ manifest_key,
+ ]
+ args += [
+ "--app_client_id",
+ app_client_id,
+ ]
+ }
+}
+
+template("app_remoting_shared_module") {
+ locales_listfile = target_name + "_locales"
+ locales_listfile_output = "$target_gen_dir/${target_name}_locales.txt"
+
+ build_locales_listfile(locales_listfile) {
# Template uses locales_listfile_output from outer scope.
}
@@ -275,6 +407,17 @@ template("app_remoting_webapp") {
html_output = wcs_sandbox_html_output
}
+ background_html = target_name + "_background_html"
+ background_html_output =
+ "$target_gen_dir/html/$target_name/ar_background.html"
+
+ build_webapp_html(background_html) {
+ html_template_file = ar_background_template
+ html_template_include_files = []
+ js_files = ar_background_html_js_files
+ html_output = background_html_output
+ }
+
main_html = target_name + "_main_html"
main_html_output = "$target_gen_dir/html/$target_name/main.html"
@@ -288,37 +431,20 @@ template("app_remoting_webapp") {
action(target_name) {
script = "build-webapp.py"
- app_key = invoker.app_key
- app_id = invoker.app_id
app_client_id = invoker.app_client_id
app_name = invoker.app_name
+ app_fullname = invoker.app_fullname
app_description = invoker.app_description
- app_capabilities = invoker.app_capabilities
manifest_key = invoker.manifest_key
- # These asserts are so that these variables get marked as being used so
- # that GN doesn't complain about them.
- assert(app_key != "" || app_key == "")
- assert(app_id != "" || app_id == "")
-
- # TODO(garykac) For internal targets, we need to extract the vendor and app
- # name from the target.
- ar_app_name = "sample_app" #target_name
- ar_app_path = "app_remoting/apps/$ar_app_name"
- ar_app_manifest = "$ar_app_path/manifest.json.jinja2"
- ar_app_manifest_common = "app_remoting/manifest_common.json.jinja2"
+ ar_path = "app_remoting/$app_name"
+ ar_manifest = "$ar_path/manifest.json"
- output_dir = "remoting/app_remoting/$ar_service_environment/$target_name"
- zip_path = "remoting/app_remoting/$ar_service_environment/$target_name.zip"
-
- ar_app_specific_files = [
- "$ar_app_path/icon16.png",
- "$ar_app_path/icon48.png",
- "$ar_app_path/icon128.png",
- "$ar_app_path/loading_splash.png",
- ]
+ output_dir = "remoting/app_remoting/$target_name"
+ zip_path = "remoting/app_remoting/$target_name.zip"
ar_generated_html_files = [
+ background_html_output,
feedback_consent_html_output,
loading_window_html_output,
message_window_html_output,
@@ -327,12 +453,10 @@ template("app_remoting_webapp") {
]
ar_webapp_files =
- ar_app_specific_files + ar_shared_resource_files + ar_all_js_files
+ ar_shared_resource_files + ar_all_js_files + ar_generated_html_files
- inputs = [
- rebase_path(ar_app_manifest, root_build_dir),
- rebase_path(ar_app_manifest_common, root_build_dir),
- ] + remoting_version_files + ar_webapp_files
+ inputs = [ rebase_path(ar_manifest, root_build_dir) ] +
+ remoting_version_files + ar_webapp_files
outputs = [
"$target_gen_dir/$zip_path",
@@ -353,7 +477,6 @@ template("app_remoting_webapp") {
# limit the size of a command line.
file_list = "$target_gen_dir/${target_name}_files.txt"
files = []
- files += rebase_path(ar_generated_html_files, root_build_dir)
files += rebase_path(ar_webapp_files, root_build_dir)
write_file(file_list, files)
@@ -362,8 +485,8 @@ template("app_remoting_webapp") {
version_full,
output_dir,
zip_path,
- rebase_path(ar_app_manifest, root_build_dir),
- "app_remoting", # Web app type
+ rebase_path(ar_manifest, root_build_dir),
+ "shared_module", # Web app type
]
args += [
"--files_listfile",
@@ -373,38 +496,15 @@ template("app_remoting_webapp") {
"--locales_listfile",
rebase_path(locales_listfile_output, root_build_dir),
]
- args += [
- "--jinja_paths",
- rebase_path("app_remoting", root_build_dir),
- ]
-
- if (is_debug) {
- # Normally, the app-id for the orchestrator is automatically extracted
- # from the webapp's extension id, but that approach doesn't work for
- # dev webapp builds (since they all share the same dev extension id).
- # The --appid arg will create a webapp that registers the given app-id
- # rather than using the extension id.
- # This is only done for Dev apps because the app-id for Release apps
- # *must* match the extension id.
- args += [
- "--appid",
- app_id,
- ]
- }
args += [
"--app_name",
- app_name,
+ app_fullname,
]
args += [
"--app_description",
app_description,
]
- args += [ "--app_capabilities" ] + app_capabilities
- args += [
- "--service_environment",
- ar_service_environment,
- ]
args += [
"--manifest_key",
manifest_key,