mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
302 lines
9.5 KiB
Plaintext
302 lines
9.5 KiB
Plaintext
|
# Copyright 2015 The Chromium Authors. All rights reserved.
|
||
|
# Use of this source code is governed by a BSD-style license that can be
|
||
|
# found in the LICENSE file.
|
||
|
|
||
|
# Keep in sync with 'remoting_webapp' target in remoting/remoting_client.gypi.
|
||
|
|
||
|
import("//build/config/chrome_build.gni")
|
||
|
import("//build/config/features.gni")
|
||
|
import("//build/util/version.gni")
|
||
|
import("//components/nacl/features.gni")
|
||
|
import("//remoting/remoting_enable.gni")
|
||
|
import("//remoting/remoting_locales.gni")
|
||
|
import("//remoting/remoting_options.gni")
|
||
|
import("//remoting/remoting_version.gni")
|
||
|
import("//remoting/webapp/files.gni")
|
||
|
import("//third_party/closure_compiler/closure_args.gni")
|
||
|
|
||
|
# The base remoting directory that is used as the root directory for file
|
||
|
# references. Many of the scripts rely on the files being specified relative
|
||
|
# to this directory.
|
||
|
remoting_dir = "//remoting"
|
||
|
|
||
|
buildtype = "Dev"
|
||
|
if (!is_debug) {
|
||
|
if (is_official_build) {
|
||
|
buildtype = "Official"
|
||
|
} else {
|
||
|
buildtype = "Release"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
template("build_locales_listfile") {
|
||
|
action(target_name) {
|
||
|
locales_listfile_output = invoker.locales_listfile_output
|
||
|
|
||
|
script = "../tools/build/remoting_localize.py"
|
||
|
|
||
|
inputs = []
|
||
|
outputs = [
|
||
|
locales_listfile_output,
|
||
|
]
|
||
|
|
||
|
args = [
|
||
|
"--locale_output",
|
||
|
rebase_path(webapp_locale_dir, root_build_dir) +
|
||
|
"/@{json_suffix}/messages.json",
|
||
|
"--locales_listfile",
|
||
|
rebase_path(locales_listfile_output, root_build_dir),
|
||
|
]
|
||
|
args += remoting_locales
|
||
|
}
|
||
|
}
|
||
|
|
||
|
template("build_webapp_html") {
|
||
|
target_jscompile = ""
|
||
|
|
||
|
# Do not enable JSCompile on instrumented builds.
|
||
|
if (enable_remoting_jscompile && invoker.instrument_js == []) {
|
||
|
target_jscompile = "${target_name}_jscompile"
|
||
|
target_jscompile_stamp = "$target_gen_dir/${target_jscompile}.stamp"
|
||
|
action(target_jscompile) {
|
||
|
js_files = remoting_webapp_js_proto_files + invoker.js_files
|
||
|
externs =
|
||
|
remoting_webapp_js_externs_files + [
|
||
|
"../../third_party/closure_compiler/externs/chrome_extensions.js",
|
||
|
"../../third_party/closure_compiler/externs/metrics_private.js",
|
||
|
]
|
||
|
|
||
|
script = "../../third_party/closure_compiler/compile.py"
|
||
|
inputs = js_files
|
||
|
outputs = [
|
||
|
target_jscompile_stamp,
|
||
|
]
|
||
|
|
||
|
extra_closure_args = [
|
||
|
"jscomp_error=reportUnknownTypes",
|
||
|
"jscomp_error=duplicate",
|
||
|
"jscomp_error=misplacedTypeAnnotation",
|
||
|
]
|
||
|
|
||
|
args = rebase_path(js_files, root_build_dir)
|
||
|
args += [
|
||
|
"--no_single_file",
|
||
|
"--out_file",
|
||
|
rebase_path(target_jscompile_stamp, root_build_dir),
|
||
|
"--closure_args",
|
||
|
] + default_closure_args + extra_closure_args
|
||
|
args += [ "--externs" ] + rebase_path(externs, root_build_dir)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
action(target_name) {
|
||
|
html_template_file = invoker.html_template_file
|
||
|
html_template_include_files = invoker.html_template_include_files
|
||
|
js_files = invoker.js_files
|
||
|
html_output = invoker.html_output
|
||
|
exclude_js = invoker.exclude_js
|
||
|
instrument_js = invoker.instrument_js
|
||
|
|
||
|
script = rebase_path("//remoting/webapp/build-html.py")
|
||
|
|
||
|
# Create a file that contains a list of all the JavaScript files needed
|
||
|
# to build the unit test page. 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 = rebase_path(js_files, root_build_dir)
|
||
|
write_file(file_list, files)
|
||
|
|
||
|
inputs = [ html_template_file ] + html_template_include_files + js_files
|
||
|
|
||
|
outputs = [
|
||
|
html_output,
|
||
|
]
|
||
|
|
||
|
if (target_jscompile != "") {
|
||
|
deps = [
|
||
|
":$target_jscompile",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
args = [
|
||
|
rebase_path(html_output, root_build_dir),
|
||
|
rebase_path(html_template_file, root_build_dir),
|
||
|
]
|
||
|
args += [
|
||
|
"--template-dir",
|
||
|
rebase_path(remoting_dir, root_build_dir),
|
||
|
]
|
||
|
args += [ "--templates" ] + html_template_include_files
|
||
|
args += [
|
||
|
"--js-list-file",
|
||
|
rebase_path(file_list, root_build_dir),
|
||
|
]
|
||
|
args += [ "--templates" ] + html_template_include_files
|
||
|
args += [
|
||
|
"--js-list-file",
|
||
|
rebase_path(file_list, root_build_dir),
|
||
|
]
|
||
|
args += [ "--exclude-js" ] + rebase_path(exclude_js, root_build_dir)
|
||
|
args += [ "--instrument-js" ] + rebase_path(instrument_js, root_build_dir)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
template("desktop_remoting_webapp") {
|
||
|
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.
|
||
|
}
|
||
|
|
||
|
background_html = target_name + "_background_html"
|
||
|
background_html_output = "$target_gen_dir/html/$target_name/background.html"
|
||
|
|
||
|
build_webapp_html(background_html) {
|
||
|
html_template_file = remoting_webapp_template_background
|
||
|
html_template_include_files = []
|
||
|
js_files = remoting_webapp_background_html_all_js_files
|
||
|
html_output = background_html_output
|
||
|
exclude_js = []
|
||
|
instrument_js = []
|
||
|
}
|
||
|
|
||
|
message_window_html = target_name + "_message_window_html"
|
||
|
message_window_html_output =
|
||
|
"$target_gen_dir/html/$target_name/message_window.html"
|
||
|
|
||
|
build_webapp_html(message_window_html) {
|
||
|
html_template_file = remoting_webapp_template_message_window
|
||
|
html_template_include_files = []
|
||
|
js_files = remoting_webapp_message_window_html_all_js_files
|
||
|
html_output = message_window_html_output
|
||
|
exclude_js = []
|
||
|
instrument_js = []
|
||
|
}
|
||
|
|
||
|
wcs_sandbox_html = target_name + "_wcs_sandbox_html"
|
||
|
wcs_sandbox_html_output = "$target_gen_dir/html/$target_name/wcs_sandbox.html"
|
||
|
|
||
|
build_webapp_html(wcs_sandbox_html) {
|
||
|
html_template_file = remoting_webapp_template_wcs_sandbox
|
||
|
html_template_include_files = []
|
||
|
js_files = remoting_webapp_wcs_sandbox_html_all_js_files
|
||
|
html_output = wcs_sandbox_html_output
|
||
|
exclude_js = []
|
||
|
instrument_js = []
|
||
|
}
|
||
|
|
||
|
main_html = target_name + "_main_html"
|
||
|
main_html_output = "$target_gen_dir/html/$target_name/main.html"
|
||
|
|
||
|
build_webapp_html(main_html) {
|
||
|
html_template_file = remoting_webapp_template_main
|
||
|
html_template_include_files = remoting_webapp_template_files
|
||
|
js_files = remoting_webapp_crd_main_html_all_js_files
|
||
|
html_output = main_html_output
|
||
|
exclude_js = []
|
||
|
instrument_js = []
|
||
|
}
|
||
|
|
||
|
public_session_html = target_name + "_public_session_html"
|
||
|
public_session_html_output =
|
||
|
"$target_gen_dir/html/$target_name/public_session.html"
|
||
|
|
||
|
build_webapp_html(public_session_html) {
|
||
|
html_template_file = remoting_webapp_template_public_session
|
||
|
html_template_include_files = remoting_webapp_public_session_template_files
|
||
|
js_files = remoting_webapp_public_session_html_all_js_files
|
||
|
html_output = public_session_html_output
|
||
|
exclude_js = []
|
||
|
instrument_js = []
|
||
|
}
|
||
|
|
||
|
action(target_name) {
|
||
|
script = "//remoting/webapp/build-webapp.py"
|
||
|
|
||
|
output_dir = invoker.output_dir
|
||
|
zip_path = invoker.zip_path
|
||
|
extra_files = invoker.extra_files
|
||
|
|
||
|
dr_generated_html_files = [
|
||
|
background_html_output,
|
||
|
message_window_html_output,
|
||
|
wcs_sandbox_html_output,
|
||
|
main_html_output,
|
||
|
public_session_html_output,
|
||
|
"$target_gen_dir/credits.html",
|
||
|
]
|
||
|
|
||
|
# Windows debug builds of remoting_client_plugin_newlib.pexe trigger OOM in
|
||
|
# arm-nacl-ld.gold.exe - enable for release builds only on Windows.
|
||
|
if (enable_nacl && (!is_win || !is_debug)) {
|
||
|
pnacl_tc = "//build/toolchain/nacl:newlib_pnacl"
|
||
|
pexe_label = "//remoting/client/plugin:remoting_client_plugin_newlib"
|
||
|
pexe_dir = get_label_info("${pexe_label}($pnacl_tc)", "root_out_dir")
|
||
|
|
||
|
extra_files += [ "$pexe_dir/remoting_client_plugin_newlib.pexe" ]
|
||
|
if (is_debug) {
|
||
|
extra_files += [ "$pexe_dir/remoting_client_plugin_newlib.pexe.debug" ]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
inputs = [ rebase_path("crd/manifest.json.jinja2") ] +
|
||
|
remoting_version_files + rebase_path(remoting_webapp_crd_files) +
|
||
|
extra_files + dr_generated_html_files
|
||
|
|
||
|
outputs = [
|
||
|
zip_path,
|
||
|
]
|
||
|
|
||
|
deps = [
|
||
|
":$background_html",
|
||
|
":$locales_listfile",
|
||
|
":$main_html",
|
||
|
":$message_window_html",
|
||
|
":$public_session_html",
|
||
|
":$wcs_sandbox_html",
|
||
|
"//remoting/resources",
|
||
|
"//remoting/webapp:credits",
|
||
|
]
|
||
|
|
||
|
# Windows debug builds of remoting_client_plugin_newlib.pexe trigger OOM in
|
||
|
# arm-nacl-ld.gold.exe - enable for release builds only on Windows.
|
||
|
if (enable_nacl && (!is_win || !is_debug)) {
|
||
|
deps += [ "${pexe_label}($pnacl_tc)" ]
|
||
|
if (is_debug) {
|
||
|
deps += [ "${pexe_label}_debug($pnacl_tc)" ]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# 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(dr_generated_html_files, root_build_dir)
|
||
|
files += rebase_path(remoting_webapp_crd_files, root_build_dir)
|
||
|
files += rebase_path(extra_files, root_build_dir)
|
||
|
write_file(file_list, files)
|
||
|
|
||
|
args = [
|
||
|
buildtype,
|
||
|
chrome_version_full,
|
||
|
rebase_path(output_dir, root_build_dir),
|
||
|
rebase_path(zip_path, root_build_dir),
|
||
|
rebase_path("crd/manifest.json.jinja2", root_build_dir),
|
||
|
]
|
||
|
args += [
|
||
|
"--files_listfile",
|
||
|
rebase_path(file_list, root_build_dir),
|
||
|
]
|
||
|
args += [
|
||
|
"--locales_listfile",
|
||
|
rebase_path(locales_listfile_output, root_build_dir),
|
||
|
]
|
||
|
args += [
|
||
|
"--use_gcd",
|
||
|
"$remoting_use_gcd",
|
||
|
]
|
||
|
}
|
||
|
}
|