Index: build/protoc_java.py |
diff --git a/build/protoc_java.py b/build/protoc_java.py |
index 42e204464ac63d52e71fc8a6280b4c7c81278dc0..3ccbaa77215d197e37efb05481c3ac67bb96d3ba 100755 |
--- a/build/protoc_java.py |
+++ b/build/protoc_java.py |
@@ -3,10 +3,11 @@ |
# Use of this source code is governed by a BSD-style license that can be |
# found in the LICENSE file. |
-"""Generate java source files from protobufs |
+"""Generate java source files from protobuf files. |
Usage: |
- protoc_java.py {protoc} {proto_path} {java_out} {stamp_file} {proto_files} |
+ protoc_java.py {protoc} {proto_path} {java_out} {proto_runtime} \ |
+ {stamp_file} {proto_files} |
This is a helper file for the genproto_java action in protoc_java.gypi. |
@@ -15,6 +16,8 @@ It performs the following steps: |
2. Creates source directory. |
3. Generates Java files using protoc. |
4. Creates a new stamp file. |
+ |
+proto_runtime must be one of 'nano' and 'lite'. |
""" |
import os |
@@ -23,27 +26,36 @@ import subprocess |
import sys |
def main(argv): |
- if len(argv) < 5: |
+ if len(argv) < 6: |
usage() |
return 1 |
- protoc_path, proto_path, java_out, stamp_file = argv[1:5] |
- proto_files = argv[5:] |
+ protoc_path, proto_path, java_out, proto_runtime, stamp_file = argv[1:6] |
+ proto_files = argv[6:] |
- # Delete all old sources |
+ # Delete all old sources. |
if os.path.exists(java_out): |
shutil.rmtree(java_out) |
- # Create source directory |
+ # Create source directory. |
os.makedirs(java_out) |
- # Generate Java files using protoc |
+ # Figure out which runtime to use. |
+ if proto_runtime == 'nano': |
+ out_arg = '--javanano_out=optional_field_style=reftypes,' + \ |
+ 'store_unknown_fields=true:' + java_out |
+ elif proto_runtime == 'lite': |
+ out_arg = '--java_out=' + java_out |
+ else: |
+ usage() |
+ return 1 |
+ |
+ # Generate Java files using protoc. |
ret = subprocess.call( |
- [protoc_path, '--proto_path', proto_path, '--java_out', java_out] |
- + proto_files) |
+ [protoc_path, '--proto_path', proto_path, out_arg] + proto_files) |
if ret == 0: |
- # Create a new stamp file |
+ # Create a new stamp file. |
with file(stamp_file, 'a'): |
os.utime(stamp_file, None) |