1*6777b538SAndroid Build Coastguard Worker# Copyright 2015 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Workerjarrunner = "//build/util/java_action.py" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker# Declare a target that runs a java command a single time. 8*6777b538SAndroid Build Coastguard Worker# 9*6777b538SAndroid Build Coastguard Worker# This target type allows you to run a java command a single time to produce 10*6777b538SAndroid Build Coastguard Worker# one or more output files. If you want to run a java command for each of a 11*6777b538SAndroid Build Coastguard Worker# set of input files, see "java_action_foreach". 12*6777b538SAndroid Build Coastguard Worker# 13*6777b538SAndroid Build Coastguard Worker# See "gn help action" for more information on how to use this target. This 14*6777b538SAndroid Build Coastguard Worker# template is based on the "action" and supports the same variables. 15*6777b538SAndroid Build Coastguard Workertemplate("java_action") { 16*6777b538SAndroid Build Coastguard Worker assert(defined(invoker.script), 17*6777b538SAndroid Build Coastguard Worker "Need script in $target_name listing the .jar file to run.") 18*6777b538SAndroid Build Coastguard Worker assert(defined(invoker.outputs), 19*6777b538SAndroid Build Coastguard Worker "Need outputs in $target_name listing the generated outputs.") 20*6777b538SAndroid Build Coastguard Worker 21*6777b538SAndroid Build Coastguard Worker jarscript = invoker.script 22*6777b538SAndroid Build Coastguard Worker action(target_name) { 23*6777b538SAndroid Build Coastguard Worker script = jarrunner 24*6777b538SAndroid Build Coastguard Worker 25*6777b538SAndroid Build Coastguard Worker inputs = [ jarscript ] 26*6777b538SAndroid Build Coastguard Worker if (defined(invoker.inputs)) { 27*6777b538SAndroid Build Coastguard Worker inputs += invoker.inputs 28*6777b538SAndroid Build Coastguard Worker } 29*6777b538SAndroid Build Coastguard Worker 30*6777b538SAndroid Build Coastguard Worker args = [ 31*6777b538SAndroid Build Coastguard Worker "-jar", 32*6777b538SAndroid Build Coastguard Worker rebase_path(jarscript, root_build_dir), 33*6777b538SAndroid Build Coastguard Worker ] 34*6777b538SAndroid Build Coastguard Worker if (defined(invoker.args)) { 35*6777b538SAndroid Build Coastguard Worker args += invoker.args 36*6777b538SAndroid Build Coastguard Worker } 37*6777b538SAndroid Build Coastguard Worker 38*6777b538SAndroid Build Coastguard Worker forward_variables_from(invoker, 39*6777b538SAndroid Build Coastguard Worker [ 40*6777b538SAndroid Build Coastguard Worker "console", 41*6777b538SAndroid Build Coastguard Worker "data", 42*6777b538SAndroid Build Coastguard Worker "data_deps", 43*6777b538SAndroid Build Coastguard Worker "depfile", 44*6777b538SAndroid Build Coastguard Worker "deps", 45*6777b538SAndroid Build Coastguard Worker "outputs", 46*6777b538SAndroid Build Coastguard Worker "sources", 47*6777b538SAndroid Build Coastguard Worker "testonly", 48*6777b538SAndroid Build Coastguard Worker "visibility", 49*6777b538SAndroid Build Coastguard Worker ]) 50*6777b538SAndroid Build Coastguard Worker } 51*6777b538SAndroid Build Coastguard Worker} 52*6777b538SAndroid Build Coastguard Worker 53*6777b538SAndroid Build Coastguard Worker# Declare a target that runs a java command over a set of files. 54*6777b538SAndroid Build Coastguard Worker# 55*6777b538SAndroid Build Coastguard Worker# This target type allows you to run a java command once-per-file over a set of 56*6777b538SAndroid Build Coastguard Worker# sources. If you want to run a java command once that takes many files as 57*6777b538SAndroid Build Coastguard Worker# input, see "java_action". 58*6777b538SAndroid Build Coastguard Worker# 59*6777b538SAndroid Build Coastguard Worker# See "gn help action_foreach" for more information on how to use this target. 60*6777b538SAndroid Build Coastguard Worker# This template is based on the "action_foreach" supports the same variables. 61*6777b538SAndroid Build Coastguard Workertemplate("java_action_foreach") { 62*6777b538SAndroid Build Coastguard Worker assert(defined(invoker.script), 63*6777b538SAndroid Build Coastguard Worker "Need script in $target_name listing the .jar file to run.") 64*6777b538SAndroid Build Coastguard Worker assert(defined(invoker.outputs), 65*6777b538SAndroid Build Coastguard Worker "Need outputs in $target_name listing the generated outputs.") 66*6777b538SAndroid Build Coastguard Worker assert(defined(invoker.sources), 67*6777b538SAndroid Build Coastguard Worker "Need sources in $target_name listing the target inputs.") 68*6777b538SAndroid Build Coastguard Worker 69*6777b538SAndroid Build Coastguard Worker jarscript = invoker.script 70*6777b538SAndroid Build Coastguard Worker action_foreach(target_name) { 71*6777b538SAndroid Build Coastguard Worker script = jarrunner 72*6777b538SAndroid Build Coastguard Worker 73*6777b538SAndroid Build Coastguard Worker inputs = [ jarscript ] 74*6777b538SAndroid Build Coastguard Worker if (defined(invoker.inputs)) { 75*6777b538SAndroid Build Coastguard Worker inputs += invoker.inputs 76*6777b538SAndroid Build Coastguard Worker } 77*6777b538SAndroid Build Coastguard Worker 78*6777b538SAndroid Build Coastguard Worker args = [ 79*6777b538SAndroid Build Coastguard Worker "-jar", 80*6777b538SAndroid Build Coastguard Worker rebase_path(jarscript, root_build_dir), 81*6777b538SAndroid Build Coastguard Worker ] 82*6777b538SAndroid Build Coastguard Worker if (defined(invoker.args)) { 83*6777b538SAndroid Build Coastguard Worker args += invoker.args 84*6777b538SAndroid Build Coastguard Worker } 85*6777b538SAndroid Build Coastguard Worker 86*6777b538SAndroid Build Coastguard Worker forward_variables_from(invoker, 87*6777b538SAndroid Build Coastguard Worker [ 88*6777b538SAndroid Build Coastguard Worker "console", 89*6777b538SAndroid Build Coastguard Worker "data", 90*6777b538SAndroid Build Coastguard Worker "data_deps", 91*6777b538SAndroid Build Coastguard Worker "depfile", 92*6777b538SAndroid Build Coastguard Worker "deps", 93*6777b538SAndroid Build Coastguard Worker "outputs", 94*6777b538SAndroid Build Coastguard Worker "sources", 95*6777b538SAndroid Build Coastguard Worker "testonly", 96*6777b538SAndroid Build Coastguard Worker "visibility", 97*6777b538SAndroid Build Coastguard Worker ]) 98*6777b538SAndroid Build Coastguard Worker } 99*6777b538SAndroid Build Coastguard Worker} 100