| #!/usr/bin/env python3 | |
| # Copyright 2017 The Chromium Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| """Wraps bin/helper/bytecode_processor and expands @FileArgs.""" | |
| import argparse | |
| import sys | |
| from util import build_utils | |
| from util import server_utils | |
| def _AddSwitch(parser, val): | |
| parser.add_argument( | |
| val, action='store_const', default='--disabled', const=val) | |
| def main(argv): | |
| argv = build_utils.ExpandFileArgs(argv[1:]) | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument('--target-name', help='Fully qualified GN target name.') | |
| parser.add_argument('--script', required=True, | |
| help='Path to the java binary wrapper script.') | |
| parser.add_argument('--gn-target', required=True) | |
| parser.add_argument('--input-jar', required=True) | |
| parser.add_argument('--direct-classpath-jars') | |
| parser.add_argument('--sdk-classpath-jars') | |
| parser.add_argument('--full-classpath-jars') | |
| parser.add_argument('--full-classpath-gn-targets') | |
| parser.add_argument('--stamp') | |
| parser.add_argument('-v', '--verbose', action='store_true') | |
| parser.add_argument('--missing-classes-allowlist') | |
| parser.add_argument('--warnings-as-errors', | |
| action='store_true', | |
| help='Treat all warnings as errors.') | |
| _AddSwitch(parser, '--is-prebuilt') | |
| args = parser.parse_args(argv) | |
| if server_utils.MaybeRunCommand(name=args.target_name, | |
| argv=sys.argv, | |
| stamp_file=args.stamp): | |
| return | |
| args.sdk_classpath_jars = build_utils.ParseGnList(args.sdk_classpath_jars) | |
| args.direct_classpath_jars = build_utils.ParseGnList( | |
| args.direct_classpath_jars) | |
| args.full_classpath_jars = build_utils.ParseGnList(args.full_classpath_jars) | |
| args.full_classpath_gn_targets = build_utils.ParseGnList( | |
| args.full_classpath_gn_targets) | |
| args.missing_classes_allowlist = build_utils.ParseGnList( | |
| args.missing_classes_allowlist) | |
| verbose = '--verbose' if args.verbose else '--not-verbose' | |
| cmd = [args.script, args.gn_target, args.input_jar, verbose, args.is_prebuilt] | |
| cmd += [str(len(args.missing_classes_allowlist))] | |
| cmd += args.missing_classes_allowlist | |
| cmd += [str(len(args.sdk_classpath_jars))] | |
| cmd += args.sdk_classpath_jars | |
| cmd += [str(len(args.direct_classpath_jars))] | |
| cmd += args.direct_classpath_jars | |
| cmd += [str(len(args.full_classpath_jars))] | |
| cmd += args.full_classpath_jars | |
| cmd += [str(len(args.full_classpath_gn_targets))] | |
| cmd += args.full_classpath_gn_targets | |
| build_utils.CheckOutput(cmd, | |
| print_stdout=True, | |
| fail_func=None, | |
| fail_on_output=args.warnings_as_errors) | |
| if args.stamp: | |
| build_utils.Touch(args.stamp) | |
| if __name__ == '__main__': | |
| sys.exit(main(sys.argv)) |