summaryrefslogtreecommitdiff
path: root/chromium/build/protoc_java.py
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-11-18 16:35:47 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-11-18 15:45:54 +0000
commit32f5a1c56531e4210bc4cf8d8c7825d66e081888 (patch)
treeeeeec6822f4d738d8454525233fd0e2e3a659e6d /chromium/build/protoc_java.py
parent99677208ff3b216fdfec551fbe548da5520cd6fb (diff)
downloadqtwebengine-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-xchromium/build/protoc_java.py74
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: