diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-11-18 16:35:47 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-11-18 15:45:54 +0000 |
commit | 32f5a1c56531e4210bc4cf8d8c7825d66e081888 (patch) | |
tree | eeeec6822f4d738d8454525233fd0e2e3a659e6d /chromium/build/protoc_java.py | |
parent | 99677208ff3b216fdfec551fbe548da5520cd6fb (diff) | |
download | qtwebengine-chromium-32f5a1c56531e4210bc4cf8d8c7825d66e081888.tar.gz |
BASELINE: Update Chromium to 87.0.4280.67
Change-Id: Ib157360be8c2ffb2c73125751a89f60e049c1d54
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/build/protoc_java.py')
-rwxr-xr-x | chromium/build/protoc_java.py | 74 |
1 files changed, 43 insertions, 31 deletions
diff --git a/chromium/build/protoc_java.py b/chromium/build/protoc_java.py index e6147d8b845..fe602a9fc9a 100755 --- a/chromium/build/protoc_java.py +++ b/chromium/build/protoc_java.py @@ -5,7 +5,7 @@ """Generate java source files from protobuf files. -This is a helper file for the genproto_java action in protoc_java.gypi. +This is the action script for the proto_java_library template. It performs the following steps: 1. Deletes all old sources (ensures deleted classes are not part of new jars). @@ -17,51 +17,63 @@ It performs the following steps: from __future__ import print_function +import argparse import os -import optparse import shutil import subprocess import sys -sys.path.append(os.path.join(os.path.dirname(__file__), "android", "gyp")) +sys.path.append(os.path.join(os.path.dirname(__file__), 'android', 'gyp')) from util import build_utils + +def _HasJavaPackage(proto_lines): + return any(line.strip().startswith('option java_package') + for line in proto_lines) + + +def _EnforceJavaPackage(proto_srcs): + for proto_path in proto_srcs: + with open(proto_path) as in_proto: + if not _HasJavaPackage(in_proto.readlines()): + raise Exception('Proto files for java must contain a "java_package" ' + 'line: {}'.format(proto_path)) + + def main(argv): - parser = optparse.OptionParser() + parser = argparse.ArgumentParser() build_utils.AddDepfileOption(parser) - parser.add_option("--protoc", help="Path to protoc binary.") - parser.add_option("--proto-path", help="Path to proto directory.") - parser.add_option("--java-out-dir", - help="Path to output directory for java files.") - parser.add_option("--srcjar", help="Path to output srcjar.") - parser.add_option("--stamp", help="File to touch on success.") - parser.add_option("--nano", - help="Use to generate nano protos.", action='store_true') - parser.add_option("--import-dir", action="append", default=[], - help="Extra import directory for protos, can be repeated.") - options, args = parser.parse_args(argv) - - build_utils.CheckOptions(options, parser, ['protoc', 'proto_path']) + parser.add_argument('--protoc', required=True, help='Path to protoc binary.') + parser.add_argument('--proto-path', + required=True, + help='Path to proto directory.') + parser.add_argument('--java-out-dir', + help='Path to output directory for java files.') + parser.add_argument('--srcjar', help='Path to output srcjar.') + parser.add_argument('--stamp', help='File to touch on success.') + parser.add_argument( + '--import-dir', + action='append', + default=[], + help='Extra import directory for protos, can be repeated.') + parser.add_argument('protos', nargs='+', help='proto source files') + options = parser.parse_args(argv) + if not options.java_out_dir and not options.srcjar: - print('One of --java-out-dir or --srcjar must be specified.') - return 1 + raise Exception('One of --java-out-dir or --srcjar must be specified.') - proto_path_args = ['--proto_path', options.proto_path] - for path in options.import_dir: - proto_path_args += ["--proto_path", path] + _EnforceJavaPackage(options.protos) with build_utils.TempDir() as temp_dir: - if options.nano: - # Specify arguments to the generator. - generator_args = ['optional_field_style=reftypes', - 'store_unknown_fields=true'] - out_arg = '--javanano_out=' + ','.join(generator_args) + ':' + temp_dir - else: - out_arg = '--java_out=lite:' + temp_dir + out_arg = '--java_out=lite:' + temp_dir + + proto_path_args = ['--proto_path', options.proto_path] + for path in options.import_dir: + proto_path_args += ["--proto_path", path] # Generate Java files using protoc. build_utils.CheckOutput( - [options.protoc] + proto_path_args + [out_arg] + args, + [options.protoc] + proto_path_args + [out_arg] + options.protos, # protoc generates superfluous warnings about LITE_RUNTIME deprecation # even though we are using the new non-deprecated method. stderr_filter=lambda output: build_utils.FilterLines( @@ -76,7 +88,7 @@ def main(argv): if options.depfile: assert options.srcjar - deps = args + [options.protoc] + deps = options.protos + [options.protoc] build_utils.WriteDepfile(options.depfile, options.srcjar, deps) if options.stamp: |