• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python3
2# Copyright 2021 The Chromium Authors
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5"""Wrapper script around TraceEventAdder script."""
6
7import argparse
8import sys
9import os
10
11from util import build_utils
12import action_helpers  # build_utils adds //build to sys.path.
13
14
15def main(argv):
16  argv = build_utils.ExpandFileArgs(argv[1:])
17  parser = argparse.ArgumentParser()
18  action_helpers.add_depfile_arg(parser)
19  parser.add_argument('--script',
20                      required=True,
21                      help='Path to the java binary wrapper script.')
22  parser.add_argument('--stamp', help='Path to stamp to mark when finished.')
23  parser.add_argument('--classpath', action='append', nargs='+')
24  parser.add_argument('--input-jars', action='append', nargs='+')
25  parser.add_argument('--output-jars', action='append', nargs='+')
26  args = parser.parse_args(argv)
27
28  args.classpath = action_helpers.parse_gn_list(args.classpath)
29  args.input_jars = action_helpers.parse_gn_list(args.input_jars)
30  args.output_jars = action_helpers.parse_gn_list(args.output_jars)
31
32  for output_jar in args.output_jars:
33    jar_dir = os.path.dirname(output_jar)
34    if not os.path.exists(jar_dir):
35      os.makedirs(jar_dir)
36
37  all_input_jars = set(args.classpath + args.input_jars)
38  cmd = [
39      args.script, '--classpath', ':'.join(sorted(all_input_jars)),
40      ':'.join(args.input_jars), ':'.join(args.output_jars)
41  ]
42  build_utils.CheckOutput(cmd, print_stdout=True)
43
44  build_utils.Touch(args.stamp)
45
46  action_helpers.write_depfile(args.depfile, args.stamp, inputs=all_input_jars)
47
48
49if __name__ == '__main__':
50  sys.exit(main(sys.argv))
51