|  | # 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. | 
|  |  | 
|  | jarrunner = "//build/util/java_action.py" | 
|  |  | 
|  | # Declare a target that runs a java command a single time. | 
|  | # | 
|  | # This target type allows you to run a java command a single time to produce | 
|  | # one or more output files. If you want to run a java command for each of a | 
|  | # set of input files, see "java_action_foreach". | 
|  | # | 
|  | # See "gn help action" for more information on how to use this target. This | 
|  | # template is based on the "action" and supports the same variables. | 
|  | template("java_action") { | 
|  | assert(defined(invoker.script), | 
|  | "Need script in $target_name listing the .jar file to run.") | 
|  | assert(defined(invoker.outputs), | 
|  | "Need outputs in $target_name listing the generated outputs.") | 
|  |  | 
|  | jarscript = invoker.script | 
|  | action(target_name) { | 
|  | script = jarrunner | 
|  |  | 
|  | inputs = [ | 
|  | jarscript, | 
|  | ] | 
|  | if (defined(invoker.inputs)) { | 
|  | inputs += invoker.inputs | 
|  | } | 
|  |  | 
|  | args = [ | 
|  | "-jar", | 
|  | rebase_path(jarscript, root_build_dir), | 
|  | ] | 
|  | if (defined(invoker.args)) { | 
|  | args += invoker.args | 
|  | } | 
|  |  | 
|  | forward_variables_from(invoker, | 
|  | [ | 
|  | "console", | 
|  | "data", | 
|  | "data_deps", | 
|  | "depfile", | 
|  | "deps", | 
|  | "outputs", | 
|  | "sources", | 
|  | "testonly", | 
|  | "visibility", | 
|  | ]) | 
|  | } | 
|  | } | 
|  |  | 
|  | # Declare a target that runs a java command over a set of files. | 
|  | # | 
|  | # This target type allows you to run a java command once-per-file over a set of | 
|  | # sources. If you want to run a java command once that takes many files as | 
|  | # input, see "java_action". | 
|  | # | 
|  | # See "gn help action_foreach" for more information on how to use this target. | 
|  | # This template is based on the "action_foreach" supports the same variables. | 
|  | template("java_action_foreach") { | 
|  | assert(defined(invoker.script), | 
|  | "Need script in $target_name listing the .jar file to run.") | 
|  | assert(defined(invoker.outputs), | 
|  | "Need outputs in $target_name listing the generated outputs.") | 
|  | assert(defined(invoker.sources), | 
|  | "Need sources in $target_name listing the target inputs.") | 
|  |  | 
|  | jarscript = invoker.script | 
|  | action_foreach(target_name) { | 
|  | script = jarrunner | 
|  |  | 
|  | inputs = [ | 
|  | jarscript, | 
|  | ] | 
|  | if (defined(invoker.inputs)) { | 
|  | inputs += invoker.inputs | 
|  | } | 
|  |  | 
|  | args = [ | 
|  | "-jar", | 
|  | rebase_path(jarscript, root_build_dir), | 
|  | ] | 
|  | if (defined(invoker.args)) { | 
|  | args += invoker.args | 
|  | } | 
|  |  | 
|  | forward_variables_from(invoker, | 
|  | [ | 
|  | "console", | 
|  | "data", | 
|  | "data_deps", | 
|  | "depfile", | 
|  | "deps", | 
|  | "outputs", | 
|  | "sources", | 
|  | "testonly", | 
|  | "visibility", | 
|  | ]) | 
|  | } | 
|  | } |