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

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

Issue 2324823002: Reorder protobuf compiler command line arguments. (Closed)
Patch Set: Created 4 years, 3 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 help="Standard C++ generator options.") 89 help="Standard C++ generator options.")
90 parser.add_argument("--include", 90 parser.add_argument("--include",
91 help="Name of include to insert into generated headers.") 91 help="Name of include to insert into generated headers.")
92 92
93 parser.add_argument("protos", nargs="+", 93 parser.add_argument("protos", nargs="+",
94 help="Input protobuf definition file(s).") 94 help="Input protobuf definition file(s).")
95 95
96 options = parser.parse_args() 96 options = parser.parse_args()
97 97
98 proto_dir = os.path.relpath(options.proto_in_dir) 98 proto_dir = os.path.relpath(options.proto_in_dir)
99 protoc_cmd = [ 99 protoc_cmd = [os.path.realpath(options.protoc)]
100 os.path.realpath(options.protoc),
101 "--proto_path", proto_dir
102 ]
103 100
104 protos = options.protos 101 protos = options.protos
105 headers = [] 102 headers = []
106 VerifyProtoNames(protos) 103 VerifyProtoNames(protos)
107 104
105 if options.py_out_dir:
106 protoc_cmd += ["--python_out", options.py_out_dir]
107
108 if options.cc_out_dir: 108 if options.cc_out_dir:
109 cc_out_dir = options.cc_out_dir 109 cc_out_dir = options.cc_out_dir
110 cc_options = FormatGeneratorOptions(options.cc_options) 110 cc_options = FormatGeneratorOptions(options.cc_options)
111 protoc_cmd += ["--cpp_out", cc_options + cc_out_dir] 111 protoc_cmd += ["--cpp_out", cc_options + cc_out_dir]
112 for filename in protos: 112 for filename in protos:
113 stripped_name = StripProtoExtension(filename) 113 stripped_name = StripProtoExtension(filename)
114 headers.append(os.path.join(cc_out_dir, stripped_name + ".pb.h")) 114 headers.append(os.path.join(cc_out_dir, stripped_name + ".pb.h"))
115 115
116 if options.py_out_dir:
117 protoc_cmd += ["--python_out", options.py_out_dir]
118
119 if options.plugin_out_dir: 116 if options.plugin_out_dir:
120 plugin_options = FormatGeneratorOptions(options.plugin_options) 117 plugin_options = FormatGeneratorOptions(options.plugin_options)
121 protoc_cmd += [ 118 protoc_cmd += [
122 "--plugin", "protoc-gen-plugin=" + os.path.relpath(options.plugin), 119 "--plugin", "protoc-gen-plugin=" + os.path.relpath(options.plugin),
123 "--plugin_out", plugin_options + options.plugin_out_dir 120 "--plugin_out", plugin_options + options.plugin_out_dir
124 ] 121 ]
125 122
123 protoc_cmd += ["--proto_path", proto_dir]
126 protoc_cmd += [os.path.join(proto_dir, name) for name in protos] 124 protoc_cmd += [os.path.join(proto_dir, name) for name in protos]
127 ret = subprocess.call(protoc_cmd) 125 ret = subprocess.call(protoc_cmd)
128 if ret != 0: 126 if ret != 0:
129 raise RuntimeError("Protoc has returned non-zero status: " 127 raise RuntimeError("Protoc has returned non-zero status: "
130 "{0} .".format(ret)) 128 "{0} .".format(ret))
131 129
132 if options.include: 130 if options.include:
133 WriteIncludes(headers, options.include) 131 WriteIncludes(headers, options.include)
134 132
135 133
136 if __name__ == "__main__": 134 if __name__ == "__main__":
137 try: 135 try:
138 main(sys.argv) 136 main(sys.argv)
139 except RuntimeError as e: 137 except RuntimeError as e:
140 print(e, file=sys.stderr) 138 print(e, file=sys.stderr)
141 sys.exit(1) 139 sys.exit(1)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698