aboutsummaryrefslogtreecommitdiffhomepage
path: root/csharp/generate_protos.sh
diff options
context:
space:
mode:
authorGravatar Jon Skeet <jonskeet@google.com>2015-05-15 14:36:07 +0100
committerGravatar Jon Skeet <jonskeet@google.com>2015-05-16 11:38:27 +0100
commitb1a395ce07651d9a4658bec5aee5df777c85da0b (patch)
tree0ecda65c08c5498ad042408b1bbc0e5421bf58e2 /csharp/generate_protos.sh
parent17ca0fee20029c571e1002938ef9bc2b5cf53266 (diff)
Generate *all* protos in the script, applying fixups.
We still have some protos which aren't generated how we want them to be: - Until we have an option to specify the "umbrella" class, DescriptorProtoFile will be broken. (The change of name here affects the reflection descriptor, which accounts for most of the change. That's easier than trying to work out exactly which occurrences of Descriptor need changing though.) - That change affects UnittestCustomOptions - Issue #307 breaks Unittest.cs After this commit, we don't have the record of the fixups in the files themselves any more, but one centralized record in the shell script.
Diffstat (limited to 'csharp/generate_protos.sh')
-rwxr-xr-xcsharp/generate_protos.sh27
1 files changed, 26 insertions, 1 deletions
diff --git a/csharp/generate_protos.sh b/csharp/generate_protos.sh
index 8c066cbe..9e89bf26 100755
--- a/csharp/generate_protos.sh
+++ b/csharp/generate_protos.sh
@@ -3,6 +3,16 @@
# You first need to make sure protoc has been built (see instructions on
# building protoc in root of this repository)
+# This script performs a few fix-ups as part of generation. These are:
+# - descriptor.proto is renamed to descriptor_proto_file.proto before
+# generation, to avoid the naming collision between the class for the file
+# descriptor and its Descriptor property
+# - This change also impacts UnittestCustomOptions, which expects to
+# use a class of Descriptor when it's actually been renamed to
+# DescriptorProtoFile.
+# - Issue 307 (codegen for double-nested types) breaks Unittest.proto and
+# its lite equivalents.
+
set -ex
# cd to repository root
@@ -26,7 +36,12 @@ if [ -z "$PROTOC" ]; then
fi
# Descriptor proto
-#TODO(jtattermusch): generate descriptor.proto
+# TODO(jonskeet): Remove fixup
+cp src/google/protobuf/descriptor.proto src/google/protobuf/descriptor_proto_file.proto
+$PROTOC -Isrc --csharp_out=csharp/src/ProtocolBuffers/DescriptorProtos \
+ src/google/protobuf/descriptor_proto_file.proto
+rm src/google/protobuf/descriptor_proto_file.proto
+
# ProtocolBuffers.Test protos
$PROTOC -Isrc --csharp_out=csharp/src/ProtocolBuffers.Test/TestProtos \
@@ -63,6 +78,16 @@ $PROTOC -Icsharp/protos/extest --csharp_out=csharp/src/ProtocolBuffersLite.Test/
csharp/protos/extest/unittest_extras_full.proto \
csharp/protos/extest/unittest_extras_lite.proto
+# TODO(jonskeet): Remove fixup; see issue #307
+sed -i -e 's/RepeatedFieldsGenerator\.Group/RepeatedFieldsGenerator.Types.Group/g' \
+ csharp/src/ProtocolBuffers.Test/TestProtos/Unittest.cs \
+ csharp/src/ProtocolBuffersLite.Test/TestProtos/Unittest.cs \
+ csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestLite.cs
+
+# TODO(jonskeet): Remove fixup
+sed -i -e 's/DescriptorProtos\.Descriptor\./DescriptorProtos.DescriptorProtoFile./g' \
+ csharp/src/ProtocolBuffers.Test/TestProtos/UnittestCustomOptions.cs
+
# AddressBook sample protos
$PROTOC -Iexamples --csharp_out=csharp/src/AddressBook \
examples/addressbook.proto