mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 06:16:30 +03:00
177 lines
5.2 KiB
Plaintext
177 lines
5.2 KiB
Plaintext
# Copyright 2017 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.
|
|
|
|
import("//third_party/closure_compiler/closure_args.gni")
|
|
|
|
script_path = "//third_party/closure_compiler"
|
|
compiler_path = "$script_path/compiler/compiler.jar"
|
|
|
|
# Defines a target that creates an ordering for .js files to be used by
|
|
# js_binary to compile.
|
|
#
|
|
# Variables:
|
|
# sources:
|
|
# List of Javascript files to include in the library
|
|
#
|
|
# deps:
|
|
# List of js_library targets to depend on
|
|
#
|
|
# extra_deps:
|
|
# List of any other rules to depend on. E.g. a rule that generates js source
|
|
# files
|
|
#
|
|
# Example:
|
|
# js_library("apple_tree") {
|
|
# sources = ["tree_main.js"]
|
|
# deps = [
|
|
# ":branch",
|
|
# ":trunk",
|
|
# ":root",
|
|
# ]
|
|
# }
|
|
|
|
template("js_library") {
|
|
assert(defined(invoker.sources) || defined(invoker.deps),
|
|
"Need sources or deps in $target_name for js_library")
|
|
action(target_name) {
|
|
script = "$script_path/js_library.py"
|
|
forward_variables_from(invoker,
|
|
[
|
|
"sources",
|
|
"deps",
|
|
"extra_deps",
|
|
])
|
|
output_file = "$target_gen_dir/$target_name.js_library"
|
|
outputs = [
|
|
output_file,
|
|
]
|
|
args = [ "--output" ] + [ rebase_path(output_file, root_build_dir) ]
|
|
if (defined(sources)) {
|
|
args += [ "--sources" ] + rebase_path(sources, root_build_dir)
|
|
}
|
|
if (defined(deps)) {
|
|
args += [ "--deps" ]
|
|
foreach(dep, deps) {
|
|
# Get the output path for each dep
|
|
dep_gen_dir = get_label_info(dep, "target_gen_dir")
|
|
dep_name = get_label_info(dep, "name")
|
|
dep_output_path = "$dep_gen_dir/$dep_name.js_library"
|
|
args += [ rebase_path(dep_output_path, root_build_dir) ]
|
|
}
|
|
}
|
|
if (defined(extra_deps)) {
|
|
if (!defined(deps)) {
|
|
deps = []
|
|
}
|
|
deps += extra_deps
|
|
}
|
|
}
|
|
}
|
|
|
|
# Defines a target that compiles javascript files using the Closure compiler.
|
|
# This will produce a minified javascript output file. Additional checks and
|
|
# optimizations can be configured using the closure_flags attribute.
|
|
#
|
|
# Variables:
|
|
# sources:
|
|
# List of .js files to compile
|
|
#
|
|
# deps:
|
|
# List of js_library rules to depend on
|
|
#
|
|
# outputs:
|
|
# A file to write the compiled .js to.
|
|
# Only takes in a single file, but must be placed in a list
|
|
#
|
|
# bootstrap_file:
|
|
# A .js files to include before all others
|
|
#
|
|
# config_files:
|
|
# A list of .js files to include after the bootstrap_file but before all
|
|
# others
|
|
#
|
|
# closure_flags:
|
|
# A list of custom flags to pass to the Closure compiler. Do not include
|
|
# the leading dashes
|
|
#
|
|
# externs_list:
|
|
# A list of .js files to pass to the compiler as externs
|
|
#
|
|
# Example:
|
|
# js_binary("tree") {
|
|
# sources = ["tree_main.js"]
|
|
# deps = [":apple_tree"]
|
|
# outputs = [ "$target_gen_dir/tree.js" ]
|
|
# bootstrap_file = "bootstrap.js"
|
|
# config_files = [
|
|
# "config1.js",
|
|
# "config2.js",
|
|
# ]
|
|
# closure_flags = ["jscomp_error=undefinedVars"]
|
|
# externs_list = [ "externs.js" ]
|
|
# }
|
|
|
|
template("js_binary") {
|
|
assert(defined(invoker.sources) || defined(invoker.deps),
|
|
"Need sources or deps in $target_name for js_binary")
|
|
assert(defined(invoker.outputs), "Need outputs in $target_name for js_binary")
|
|
|
|
action(target_name) {
|
|
script = "$script_path/js_binary.py"
|
|
forward_variables_from(invoker,
|
|
[
|
|
"sources",
|
|
"deps",
|
|
"outputs",
|
|
"bootstrap_file",
|
|
"config_files",
|
|
"closure_flags",
|
|
"externs_list",
|
|
])
|
|
args = [
|
|
"--compiler",
|
|
rebase_path(compiler_path, root_build_dir),
|
|
]
|
|
args += [ "--output" ] + rebase_path(outputs, root_build_dir)
|
|
if (defined(sources)) {
|
|
args += [ "--sources" ] + rebase_path(sources, root_build_dir)
|
|
} else {
|
|
sources = []
|
|
}
|
|
if (defined(deps)) {
|
|
args += [ "--deps" ]
|
|
foreach(dep, deps) {
|
|
# Get the output path for each dep
|
|
dep_gen_dir = get_label_info(dep, "target_gen_dir")
|
|
dep_name = get_label_info(dep, "name")
|
|
dep_output_path = "$dep_gen_dir/$dep_name.js_library"
|
|
args += [ rebase_path(dep_output_path, root_build_dir) ]
|
|
}
|
|
}
|
|
if (defined(bootstrap_file)) {
|
|
args += [
|
|
"--bootstrap",
|
|
rebase_path(bootstrap_file, root_build_dir),
|
|
]
|
|
sources += [ bootstrap_file ]
|
|
}
|
|
if (defined(config_files)) {
|
|
args += [ "--config" ] + rebase_path(config_files, root_build_dir)
|
|
sources += config_files
|
|
}
|
|
|
|
# |minifying_closure_args| from
|
|
# //third_party/closure_compiler/closure_args.gni
|
|
args += [ "--flags" ] + minifying_closure_args
|
|
if (defined(closure_flags)) {
|
|
args += closure_flags
|
|
}
|
|
if (defined(externs_list)) {
|
|
args += [ "--externs" ]
|
|
args += rebase_path(externs_list, root_build_dir)
|
|
sources += externs_list
|
|
}
|
|
}
|
|
}
|