67 lines
2.3 KiB
Python
Executable file
67 lines
2.3 KiB
Python
Executable file
#!/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.
|
|
|
|
import argparse
|
|
import os
|
|
import sys
|
|
|
|
from util import build_utils
|
|
|
|
|
|
def main():
|
|
args = build_utils.ExpandFileArgs(sys.argv[1:])
|
|
parser = argparse.ArgumentParser()
|
|
build_utils.AddDepfileOption(parser)
|
|
parser.add_argument('--desugar-jar', required=True,
|
|
help='Path to Desugar.jar.')
|
|
parser.add_argument('--input-jar', required=True,
|
|
help='Jar input path to include .class files from.')
|
|
parser.add_argument('--output-jar', required=True,
|
|
help='Jar output path.')
|
|
parser.add_argument('--classpath',
|
|
action='append',
|
|
required=True,
|
|
help='Classpath.')
|
|
parser.add_argument('--bootclasspath', required=True,
|
|
help='Path to javac bootclasspath interface jar.')
|
|
parser.add_argument('--warnings-as-errors',
|
|
action='store_true',
|
|
help='Treat all warnings as errors.')
|
|
options = parser.parse_args(args)
|
|
|
|
options.bootclasspath = build_utils.ParseGnList(options.bootclasspath)
|
|
options.classpath = build_utils.ParseGnList(options.classpath)
|
|
|
|
cmd = build_utils.JavaCmd(options.warnings_as_errors) + [
|
|
'-jar',
|
|
options.desugar_jar,
|
|
'--input',
|
|
options.input_jar,
|
|
'--output',
|
|
options.output_jar,
|
|
'--generate_base_classes_for_default_methods',
|
|
# Don't include try-with-resources files in every .jar. Instead, they
|
|
# are included via //third_party/bazel/desugar:desugar_runtime_java.
|
|
'--desugar_try_with_resources_omit_runtime_classes',
|
|
]
|
|
for path in options.bootclasspath:
|
|
cmd += ['--bootclasspath_entry', path]
|
|
for path in options.classpath:
|
|
cmd += ['--classpath_entry', path]
|
|
build_utils.CheckOutput(
|
|
cmd,
|
|
print_stdout=False,
|
|
stderr_filter=build_utils.FilterReflectiveAccessJavaWarnings,
|
|
fail_on_output=options.warnings_as_errors)
|
|
|
|
if options.depfile:
|
|
build_utils.WriteDepfile(options.depfile,
|
|
options.output_jar,
|
|
inputs=options.bootclasspath + options.classpath)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main())
|