Roll GTXiLib to 8245048a7023a37055d8d6c7a421bce3fcf79e6b.

- Uses the -include compiler flag to work around the fact that
precompiled protos are checked into the GTXiLib repo.

- gtx.proto uses the optional keyword, which was experimental in
protobuf v3.13. Adds an option to enable experimental support when
compiling protos

Change-Id: I0c7b5a780aab56991bdb30bcc57f9ec7bb450308
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3076284
Reviewed-by: Rohit Rao <rohitrao@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@google.com>
Reviewed-by: Leonard Grey <lgrey@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#909966}
NOKEYCHECK=True
GitOrigin-RevId: 8638d28be889f8a45e6526d690ad05548c4959cf
diff --git a/protoc_wrapper.py b/protoc_wrapper.py
index dc8a3f1..01ff0d9 100755
--- a/protoc_wrapper.py
+++ b/protoc_wrapper.py
@@ -94,6 +94,10 @@
                       'codesearch.')
   parser.add_argument("--plugin",
                       help="Relative path to custom generator plugin.")
+  #   TODO(crbug.com/1237958): Remove allow_optional when proto rolls to 3.15.
+  parser.add_argument("--allow-optional",
+                      action='store_true',
+                      help="Enables experimental_allow_proto3_optional.")
   parser.add_argument("--plugin-options",
                       help="Custom generator plugin options.")
   parser.add_argument("--cc-options",
@@ -151,6 +155,9 @@
     if options.cc_options:
       cc_options_list.append(options.cc_options)
 
+    if options.allow_optional:
+      protoc_cmd += ["--experimental_allow_proto3_optional"]
+
     cc_options = FormatGeneratorOptions(','.join(cc_options_list))
     protoc_cmd += ["--cpp_out", cc_options + cc_out_dir]
     for filename in protos: