xref: /aosp_15_r20/external/cronet/build/util/java_action.gni (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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