| Index: third_party/protobuf/generate_descriptor_proto.sh
|
| diff --git a/third_party/protobuf/generate_descriptor_proto.sh b/third_party/protobuf/generate_descriptor_proto.sh
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b6e6e07bb07b5cdee3edf87fdeb585910ef30374
|
| --- /dev/null
|
| +++ b/third_party/protobuf/generate_descriptor_proto.sh
|
| @@ -0,0 +1,94 @@
|
| +#!/bin/sh
|
| +
|
| +# Run this script to regenerate descriptor.pb.{h,cc} after the protocol
|
| +# compiler changes. Since these files are compiled into the protocol compiler
|
| +# itself, they cannot be generated automatically by a make rule. "make check"
|
| +# will fail if these files do not match what the protocol compiler would
|
| +# generate.
|
| +#
|
| +# HINT: Flags passed to generate_descriptor_proto.sh will be passed directly
|
| +# to make when building protoc. This is particularly useful for passing
|
| +# -j4 to run 4 jobs simultaneously.
|
| +
|
| +if test ! -e src/google/protobuf/stubs/common.h; then
|
| + cat >&2 << __EOF__
|
| +Could not find source code. Make sure you are running this script from the
|
| +root of the distribution tree.
|
| +__EOF__
|
| + exit 1
|
| +fi
|
| +
|
| +if test ! -e src/Makefile; then
|
| + cat >&2 << __EOF__
|
| +Could not find src/Makefile. You must run ./configure (and perhaps
|
| +./autogen.sh) first.
|
| +__EOF__
|
| + exit 1
|
| +fi
|
| +
|
| +cd src
|
| +
|
| +declare -a RUNTIME_PROTO_FILES=(\
|
| + google/protobuf/any.proto \
|
| + google/protobuf/api.proto \
|
| + google/protobuf/descriptor.proto \
|
| + google/protobuf/duration.proto \
|
| + google/protobuf/empty.proto \
|
| + google/protobuf/field_mask.proto \
|
| + google/protobuf/source_context.proto \
|
| + google/protobuf/struct.proto \
|
| + google/protobuf/timestamp.proto \
|
| + google/protobuf/type.proto \
|
| + google/protobuf/wrappers.proto)
|
| +
|
| +CORE_PROTO_IS_CORRECT=0
|
| +PROCESS_ROUND=1
|
| +echo "Updating descriptor protos..."
|
| +while [ $CORE_PROTO_IS_CORRECT -ne 1 ]
|
| +do
|
| + echo "Round $PROCESS_ROUND"
|
| + CORE_PROTO_IS_CORRECT=1
|
| + for PROTO_FILE in ${RUNTIME_PROTO_FILES[@]}; do
|
| + BASE_NAME=${PROTO_FILE%.*}
|
| + cp ${BASE_NAME}.pb.h ${BASE_NAME}.pb.h.tmp
|
| + cp ${BASE_NAME}.pb.cc ${BASE_NAME}.pb.cc.tmp
|
| + done
|
| + 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 $@ protoc &&
|
| + ./protoc --cpp_out=dllexport_decl=LIBPROTOBUF_EXPORT:. ${RUNTIME_PROTO_FILES[@]} && \
|
| + ./protoc --cpp_out=dllexport_decl=LIBPROTOC_EXPORT:. google/protobuf/compiler/plugin.proto
|
| +
|
| + for PROTO_FILE in ${RUNTIME_PROTO_FILES[@]}; do
|
| + BASE_NAME=${PROTO_FILE%.*}
|
| + diff ${BASE_NAME}.pb.h ${BASE_NAME}.pb.h.tmp > /dev/null
|
| + if test $? -ne 0; then
|
| + CORE_PROTO_IS_CORRECT=0
|
| + fi
|
| + diff ${BASE_NAME}.pb.cc ${BASE_NAME}.pb.cc.tmp > /dev/null
|
| + if test $? -ne 0; then
|
| + CORE_PROTO_IS_CORRECT=0
|
| + fi
|
| + done
|
| +
|
| + 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
|
| +
|
| + for PROTO_FILE in ${RUNTIME_PROTO_FILES[@]}; do
|
| + BASE_NAME=${PROTO_FILE%.*}
|
| + rm ${BASE_NAME}.pb.h.tmp
|
| + rm ${BASE_NAME}.pb.cc.tmp
|
| + done
|
| + rm google/protobuf/compiler/plugin.pb.h.tmp
|
| + rm google/protobuf/compiler/plugin.pb.cc.tmp
|
| +
|
| + PROCESS_ROUND=$((PROCESS_ROUND + 1))
|
| +done
|
| +cd ..
|
|
|