diff options
Diffstat (limited to 'generate_descriptor_proto.sh')
-rwxr-xr-x | generate_descriptor_proto.sh | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/generate_descriptor_proto.sh b/generate_descriptor_proto.sh index 07219dc1..a8d95aaf 100755 --- a/generate_descriptor_proto.sh +++ b/generate_descriptor_proto.sh @@ -27,7 +27,39 @@ __EOF__ fi cd src -make $@ protoc && - ./protoc --cpp_out=dllexport_decl=LIBPROTOBUF_EXPORT:. google/protobuf/descriptor.proto && \ - ./protoc --cpp_out=dllexport_decl=LIBPROTOC_EXPORT:. google/protobuf/compiler/plugin.proto +CORE_PROTO_IS_CORRECT=0 +while [ $CORE_PROTO_IS_CORRECT -ne 1 ] +do + CORE_PROTO_IS_CORRECT=1 + cp google/protobuf/descriptor.pb.h google/protobuf/descriptor.pb.h.tmp + cp google/protobuf/descriptor.pb.cc google/protobuf/descriptor.pb.cc.tmp + cp google/protobuf/compiler/plugin.pb.h google/protobuf/compiler/plugin.pb.h.tmp + cp google/protobuf/compiler/plugin.pb.cc google/protobuf/compiler/plugin.pb.cc.tmp + + make -j8 $@ protoc && + ./protoc --cpp_out=dllexport_decl=LIBPROTOBUF_EXPORT:. google/protobuf/descriptor.proto && \ + ./protoc --cpp_out=dllexport_decl=LIBPROTOC_EXPORT:. google/protobuf/compiler/plugin.proto + + diff google/protobuf/descriptor.pb.h google/protobuf/descriptor.pb.h.tmp > /dev/null + if test $? -ne 0; then + CORE_PROTO_IS_CORRECT=0 + fi + diff google/protobuf/descriptor.pb.cc google/protobuf/descriptor.pb.cc.tmp > /dev/null + if test $? -ne 0; then + CORE_PROTO_IS_CORRECT=0 + fi + diff google/protobuf/compiler/plugin.pb.h google/protobuf/compiler/plugin.pb.h.tmp > /dev/null + if test $? -ne 0; then + CORE_PROTO_IS_CORRECT=0 + fi + diff google/protobuf/compiler/plugin.pb.cc google/protobuf/compiler/plugin.pb.cc.tmp > /dev/null + if test $? -ne 0; then + CORE_PROTO_IS_CORRECT=0 + fi + + rm google/protobuf/descriptor.pb.h.tmp + rm google/protobuf/descriptor.pb.cc.tmp + rm google/protobuf/compiler/plugin.pb.h.tmp + rm google/protobuf/compiler/plugin.pb.cc.tmp +done cd .. |