Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(166)

Side by Side Diff: tools/protoc_wrapper/protoc_wrapper.py

Issue 2388113003: Allow proto-path in the proto_library target (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """ 6 """
7 A simple wrapper for protoc. 7 A simple wrapper for protoc.
8 Script for //third_party/protobuf/proto_library.gni . 8 Script for //third_party/protobuf/proto_library.gni .
9 Features: 9 Features:
10 - Inserts #include for extra header automatically. 10 - Inserts #include for extra header automatically.
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 print(line, file=f) 67 print(line, file=f)
68 68
69 69
70 def main(argv): 70 def main(argv):
71 parser = argparse.ArgumentParser() 71 parser = argparse.ArgumentParser()
72 parser.add_argument("--protoc", 72 parser.add_argument("--protoc",
73 help="Relative path to compiler.") 73 help="Relative path to compiler.")
74 74
75 parser.add_argument("--proto-in-dir", 75 parser.add_argument("--proto-in-dir",
76 help="Base directory with source protos.") 76 help="Base directory with source protos.")
77 parser.add_argument("--proto-path",
sdefresne 2016/10/04 11:29:55 I would make this an argument that can be passed m
Olivier 2016/10/04 12:44:31 Done.
78 help="Base directory with imported protos.")
77 parser.add_argument("--cc-out-dir", 79 parser.add_argument("--cc-out-dir",
78 help="Output directory for standard C++ generator.") 80 help="Output directory for standard C++ generator.")
79 parser.add_argument("--py-out-dir", 81 parser.add_argument("--py-out-dir",
80 help="Output directory for standard Python generator.") 82 help="Output directory for standard Python generator.")
81 parser.add_argument("--plugin-out-dir", 83 parser.add_argument("--plugin-out-dir",
82 help="Output directory for custom generator plugin.") 84 help="Output directory for custom generator plugin.")
83 85
84 parser.add_argument("--plugin", 86 parser.add_argument("--plugin",
85 help="Relative path to custom generator plugin.") 87 help="Relative path to custom generator plugin.")
86 parser.add_argument("--plugin-options", 88 parser.add_argument("--plugin-options",
(...skipping 27 matching lines...) Expand all
114 headers.append(os.path.join(cc_out_dir, stripped_name + ".pb.h")) 116 headers.append(os.path.join(cc_out_dir, stripped_name + ".pb.h"))
115 117
116 if options.plugin_out_dir: 118 if options.plugin_out_dir:
117 plugin_options = FormatGeneratorOptions(options.plugin_options) 119 plugin_options = FormatGeneratorOptions(options.plugin_options)
118 protoc_cmd += [ 120 protoc_cmd += [
119 "--plugin", "protoc-gen-plugin=" + os.path.relpath(options.plugin), 121 "--plugin", "protoc-gen-plugin=" + os.path.relpath(options.plugin),
120 "--plugin_out", plugin_options + options.plugin_out_dir 122 "--plugin_out", plugin_options + options.plugin_out_dir
121 ] 123 ]
122 124
123 protoc_cmd += ["--proto_path", proto_dir] 125 protoc_cmd += ["--proto_path", proto_dir]
126 if options.proto_path:
sdefresne 2016/10/04 11:29:55 If you change the argument to one that accept mult
Olivier 2016/10/04 12:44:31 Done. Kept the + [] instead of extend for file con
127 protoc_cmd += ["--proto_path", os.path.relpath(options.proto_path)]
128
124 protoc_cmd += [os.path.join(proto_dir, name) for name in protos] 129 protoc_cmd += [os.path.join(proto_dir, name) for name in protos]
125 ret = subprocess.call(protoc_cmd) 130 ret = subprocess.call(protoc_cmd)
126 if ret != 0: 131 if ret != 0:
127 raise RuntimeError("Protoc has returned non-zero status: " 132 raise RuntimeError("Protoc has returned non-zero status: "
128 "{0} .".format(ret)) 133 "{0} .".format(ret))
129 134
130 if options.include: 135 if options.include:
131 WriteIncludes(headers, options.include) 136 WriteIncludes(headers, options.include)
132 137
133 138
134 if __name__ == "__main__": 139 if __name__ == "__main__":
135 try: 140 try:
136 main(sys.argv) 141 main(sys.argv)
137 except RuntimeError as e: 142 except RuntimeError as e:
138 print(e, file=sys.stderr) 143 print(e, file=sys.stderr)
139 sys.exit(1) 144 sys.exit(1)
OLDNEW
« third_party/protobuf/proto_library.gni ('K') | « third_party/protobuf/proto_library.gni ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698