Descriptor support in proto_library

This is needed in order to enable support for extension-based typed
tracing events. For more information, see
https://perfetto.dev/docs/design-docs/extensions

Change-Id: I43bd82ee1c94cf7ae5be0a1fd7db4104cf8ece6a
Bug: 161696674
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2332180
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Tommy Nyquist <nyquist@chromium.org>
Reviewed-by: Eric Seckler <eseckler@chromium.org>
Commit-Queue: Andrew Shulaev <ddrone@google.com>
Cr-Original-Commit-Position: refs/heads/master@{#795191}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b1d7759d36da84dbe1849145d8f014ce4f7506a5
diff --git a/protoc_wrapper.py b/protoc_wrapper.py
index e750880..d096f60 100755
--- a/protoc_wrapper.py
+++ b/protoc_wrapper.py
@@ -97,6 +97,8 @@
   parser.add_argument("--import-dir", action="append", default=[],
                       help="Extra import directory for protos, can be repeated."
   )
+  parser.add_argument("--descriptor-set-out",
+                      help="Path to write a descriptor.")
   parser.add_argument("protos", nargs="+",
                       help="Input protobuf definition file(s).")
 
@@ -151,6 +153,9 @@
 
   protoc_cmd += [os.path.join(proto_dir, name) for name in protos]
 
+  if options.descriptor_set_out:
+    protoc_cmd += ["--descriptor_set_out", options.descriptor_set_out]
+
   ret = subprocess.call(protoc_cmd)
   if ret != 0:
     if ret <= -100: