xref: /aosp_15_r20/external/angle/build/android/gyp/bytecode_rewriter.py (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker#!/usr/bin/env python3
2*8975f5c5SAndroid Build Coastguard Worker# Copyright 2020 The Chromium Authors
3*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
4*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
5*8975f5c5SAndroid Build Coastguard Worker"""Wrapper script around ByteCodeRewriter subclass scripts."""
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Workerimport argparse
8*8975f5c5SAndroid Build Coastguard Workerimport sys
9*8975f5c5SAndroid Build Coastguard Worker
10*8975f5c5SAndroid Build Coastguard Workerfrom util import build_utils
11*8975f5c5SAndroid Build Coastguard Workerimport action_helpers  # build_utils adds //build to sys.path.
12*8975f5c5SAndroid Build Coastguard Worker
13*8975f5c5SAndroid Build Coastguard Worker
14*8975f5c5SAndroid Build Coastguard Workerdef main(argv):
15*8975f5c5SAndroid Build Coastguard Worker  argv = build_utils.ExpandFileArgs(argv[1:])
16*8975f5c5SAndroid Build Coastguard Worker  parser = argparse.ArgumentParser()
17*8975f5c5SAndroid Build Coastguard Worker  action_helpers.add_depfile_arg(parser)
18*8975f5c5SAndroid Build Coastguard Worker  parser.add_argument('--script',
19*8975f5c5SAndroid Build Coastguard Worker                      required=True,
20*8975f5c5SAndroid Build Coastguard Worker                      help='Path to the java binary wrapper script.')
21*8975f5c5SAndroid Build Coastguard Worker  parser.add_argument('--classpath', action='append', nargs='+')
22*8975f5c5SAndroid Build Coastguard Worker  parser.add_argument('--input-jar', required=True)
23*8975f5c5SAndroid Build Coastguard Worker  parser.add_argument('--output-jar', required=True)
24*8975f5c5SAndroid Build Coastguard Worker  args = parser.parse_args(argv)
25*8975f5c5SAndroid Build Coastguard Worker
26*8975f5c5SAndroid Build Coastguard Worker  classpath = action_helpers.parse_gn_list(args.classpath)
27*8975f5c5SAndroid Build Coastguard Worker  action_helpers.write_depfile(args.depfile, args.output_jar, inputs=classpath)
28*8975f5c5SAndroid Build Coastguard Worker
29*8975f5c5SAndroid Build Coastguard Worker  classpath.append(args.input_jar)
30*8975f5c5SAndroid Build Coastguard Worker  cmd = [
31*8975f5c5SAndroid Build Coastguard Worker      args.script, '--classpath', ':'.join(classpath), args.input_jar,
32*8975f5c5SAndroid Build Coastguard Worker      args.output_jar
33*8975f5c5SAndroid Build Coastguard Worker  ]
34*8975f5c5SAndroid Build Coastguard Worker  build_utils.CheckOutput(cmd, print_stdout=True)
35*8975f5c5SAndroid Build Coastguard Worker
36*8975f5c5SAndroid Build Coastguard Worker
37*8975f5c5SAndroid Build Coastguard Workerif __name__ == '__main__':
38*8975f5c5SAndroid Build Coastguard Worker  sys.exit(main(sys.argv))
39