OLD | NEW |
| (Empty) |
1 #!/bin/bash | |
2 # Generates C# source files from .proto files. | |
3 # You first need to make sure protoc has been built (see instructions on | |
4 # building protoc in root of this repository) | |
5 | |
6 # This script performs a few fix-ups as part of generation. These are: | |
7 # - descriptor.proto is renamed to descriptor_proto_file.proto before | |
8 # generation, to avoid the naming collision between the class for the file | |
9 # descriptor and its Descriptor property | |
10 # - This change also impacts UnittestCustomOptions, which expects to | |
11 # use a class of Descriptor when it's actually been renamed to | |
12 # DescriptorProtoFile. | |
13 # - Issue 307 (codegen for double-nested types) breaks Unittest.proto and | |
14 # its lite equivalents. | |
15 | |
16 set -ex | |
17 | |
18 # cd to repository root | |
19 cd $(dirname $0)/.. | |
20 | |
21 # Protocol buffer compiler to use. If the PROTOC variable is set, | |
22 # use that. Otherwise, probe for expected locations under both | |
23 # Windows and Unix. | |
24 if [ -z "$PROTOC" ]; then | |
25 # TODO(jonskeet): Use an array and a for loop instead? | |
26 if [ -x cmake/build/Debug/protoc.exe ]; then | |
27 PROTOC=cmake/build/Debug/protoc.exe | |
28 elif [ -x cmake/build/Release/protoc.exe ]; then | |
29 PROTOC=cmake/build/Release/protoc.exe | |
30 elif [ -x src/protoc ]; then | |
31 PROTOC=src/protoc | |
32 else | |
33 echo "Unable to find protocol buffer compiler." | |
34 exit 1 | |
35 fi | |
36 fi | |
37 | |
38 # Descriptor proto | |
39 # TODO(jonskeet): Remove fixup | |
40 cp src/google/protobuf/descriptor.proto src/google/protobuf/descriptor_proto_fil
e.proto | |
41 $PROTOC -Isrc --csharp_out=csharp/src/Google.Protobuf/Reflection \ | |
42 src/google/protobuf/descriptor_proto_file.proto | |
43 rm src/google/protobuf/descriptor_proto_file.proto | |
44 | |
45 $PROTOC -Isrc --csharp_out=csharp/src/Google.Protobuf/WellKnownTypes \ | |
46 src/google/protobuf/any.proto \ | |
47 src/google/protobuf/api.proto \ | |
48 src/google/protobuf/duration.proto \ | |
49 src/google/protobuf/empty.proto \ | |
50 src/google/protobuf/field_mask.proto \ | |
51 src/google/protobuf/source_context.proto \ | |
52 src/google/protobuf/struct.proto \ | |
53 src/google/protobuf/timestamp.proto \ | |
54 src/google/protobuf/type.proto \ | |
55 src/google/protobuf/wrappers.proto | |
56 | |
57 $PROTOC -Isrc --csharp_out=csharp/src/Google.Protobuf.Test/TestProtos \ | |
58 src/google/protobuf/map_unittest_proto3.proto \ | |
59 src/google/protobuf/unittest_proto3.proto \ | |
60 src/google/protobuf/unittest_import_proto3.proto \ | |
61 src/google/protobuf/unittest_import_public_proto3.proto \ | |
62 src/google/protobuf/unittest_well_known_types.proto | |
63 | |
64 | |
65 $PROTOC -Icsharp/protos --csharp_out=csharp/src/Google.Protobuf.Test/TestProtos
\ | |
66 csharp/protos/unittest_issues.proto | |
67 | |
68 # AddressBook sample protos | |
69 $PROTOC -Iexamples --csharp_out=csharp/src/AddressBook \ | |
70 examples/addressbook.proto | |
71 | |
72 $PROTOC -Iconformance --csharp_out=csharp/src/Google.Protobuf.Conformance \ | |
73 conformance/conformance.proto | |
OLD | NEW |