Index: build/protoc_java.py |
diff --git a/build/protoc_java.py b/build/protoc_java.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..42e204464ac63d52e71fc8a6280b4c7c81278dc0 |
--- /dev/null |
+++ b/build/protoc_java.py |
@@ -0,0 +1,56 @@ |
+#!/usr/bin/env python |
+# Copyright (c) 2012 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. |
+ |
+"""Generate java source files from protobufs |
+ |
+Usage: |
+ protoc_java.py {protoc} {proto_path} {java_out} {stamp_file} {proto_files} |
+ |
+This is a helper file for the genproto_java action in protoc_java.gypi. |
+ |
+It performs the following steps: |
+1. Deletes all old sources (ensures deleted classes are not part of new jars). |
+2. Creates source directory. |
+3. Generates Java files using protoc. |
+4. Creates a new stamp file. |
+""" |
+ |
+import os |
+import shutil |
+import subprocess |
+import sys |
+ |
+def main(argv): |
+ if len(argv) < 5: |
+ usage() |
+ return 1 |
+ |
+ protoc_path, proto_path, java_out, stamp_file = argv[1:5] |
+ proto_files = argv[5:] |
+ |
+ # Delete all old sources |
+ if os.path.exists(java_out): |
+ shutil.rmtree(java_out) |
+ |
+ # Create source directory |
+ os.makedirs(java_out) |
+ |
+ # Generate Java files using protoc |
+ ret = subprocess.call( |
+ [protoc_path, '--proto_path', proto_path, '--java_out', java_out] |
+ + proto_files) |
+ |
+ if ret == 0: |
+ # Create a new stamp file |
+ with file(stamp_file, 'a'): |
+ os.utime(stamp_file, None) |
+ |
+ return ret |
+ |
+def usage(): |
+ print(__doc__); |
+ |
+if __name__ == '__main__': |
+ sys.exit(main(sys.argv)) |