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