Index: third_party/closure_compiler/compile_js2.gni |
diff --git a/third_party/closure_compiler/compile_js2.gni b/third_party/closure_compiler/compile_js2.gni |
new file mode 100644 |
index 0000000000000000000000000000000000000000..007cefe94a5c8215040210371a35a901fa973dfd |
--- /dev/null |
+++ b/third_party/closure_compiler/compile_js2.gni |
@@ -0,0 +1,99 @@ |
+# Copyright 2016 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("closure_args.gni") |
+ |
+template("compile_js") { |
+ # This template optionally takes these arguments: |
+ # - sources: a list of all of the source files to be compiled. Required. |
+ # - out_file: a file where the compiled output is written to. The default |
+ # is ${target_gen_dir}/closure/${target_name}.js". |
+ # - script_args: additional arguments to pass to compile.py. |
+ # - closure_args: additional arguments to pass to the Closure compiler. |
+ # - disabled_closure_args: additional arguments dealing with the |
+ # strictness of compilation; Non-strict |
+ # defaults are provided that can be overriden. |
+ # - externs: externs required to compile the sources |
+ # - interfaces: interfaces required to compile the sources |
+ forward_variables_from(invoker, |
+ [ |
+ "source_files", |
+ "deps", |
+ "out_file", |
+ "script_args", |
+ "closure_args", |
+ "runner_args", |
+ "disabled_closure_args", |
+ "externs", |
+ "interfaces", |
+ ]) |
+ |
+ CLOSURE_DIR = "//third_party/closure_compiler" |
+ |
+ action(target_name) { |
+ assert(defined(source_files)) |
+ |
+ if (!defined(runner_args)) { |
+ runner_args = [ "enable-chrome-pass" ] |
+ } |
+ if (!defined(script_args)) { |
+ script_args = [] |
+ } |
+ if (!defined(closure_args)) { |
+ closure_args = common_closure_args + checking_closure_args |
+ } |
+ if (!defined(disabled_closure_args)) { |
+ disabled_closure_args = default_disabled_closure_args |
+ } |
+ if (!defined(out_file)) { |
+ out_file = "${target_gen_dir}/closure/${target_name}.js" |
+ } |
+ inputs = [ |
+ "${CLOSURE_DIR}/compile.py", |
+ "${CLOSURE_DIR}/processor.py", |
+ "${CLOSURE_DIR}/build/inputs.py", |
+ "${CLOSURE_DIR}/build/outputs.py", |
+ "${CLOSURE_DIR}/compiler/compiler.jar", |
+ "${CLOSURE_DIR}/runner/runner.jar", |
+ ] |
+ |
+ sources = source_files |
+ |
+ if (defined(externs)) { |
+ EXTERNS_DIR = "${CLOSURE_DIR}/externs" |
+ foreach(extern, externs) { |
+ sources += [ "$EXTERNS_DIR/$extern" ] |
+ } |
+ } |
+ if (defined(interfaces)) { |
+ INTERFACES_DIR = "${CLOSURE_DIR}/interfaces" |
+ foreach(interface, interfaces) { |
+ sources += [ "$INTERFACES_DIR/$interface" ] |
+ } |
+ } |
+ outputs = [ |
+ out_file, |
+ ] |
+ |
+ # assign the sources to data to create run-time list of sources from the |
+ # dependency tree |
+ data = sources |
+ source_list_file = |
+ "${target_gen_dir}/closure/${target_name}_source_list_file" |
+ write_runtime_deps = source_list_file |
+ |
+ script = "${CLOSURE_DIR}/compile2.py" |
+ args = script_args + rebase_path(sources) |
+ args += [ |
+ "--out_file", |
+ rebase_path(out_file), |
+ ] |
+ args += [ |
+ "--gn_source_list_file", |
+ rebase_path(source_list_file), |
+ ] |
+ args += [ "--runner_args" ] + runner_args |
+ args += [ "--closure_args" ] + closure_args + disabled_closure_args |
+ } |
+} |