Source code
Revision control
Copy as Markdown
Other Tools
#!/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))