1#!/bin/sh 2 3PROTOC_LEGACY=no 4 5if ! protoc-c --version | grep "protobuf-c 1." > /dev/null; then 6 PROTOC_VER=`protoc-c --version | grep protobuf-c | cut -d' ' -f 2` 7 if [ "$PROTOC_VER" = "" ]; then 8 echo 9 echo "########################################" 10 echo "# WARNING" 11 echo "########################################" 12 echo 13 echo "protoc-c < 1.0.0 found" 14 echo "The output will be fixed to match the new API, but it's better to update." 15 echo 16 PROTOC_LEGACY=yes 17 else 18 echo "Invalid protoc-c version. Required 1.x.y, but $PROTOC_VER found." 19 exit -2 20 fi 21fi 22 23protoc-c --c_out=. packets.proto 24 25if [ $? != 0 ] ; then 26 exit -1 27fi 28 29if [ "x$PROTOC_LEGACY" = "xyes" ]; then 30 sed -i 's/<google\/protobuf-c\/protobuf-c.h>/"protobuf.h"/g' packets.pb-c.h 31 32 # fix protoc-c < 0.14 output 33 if ! cat packets.pb-c.c | grep "PROTOBUF_C_NO_DEPRECATED" > /dev/null; then 34 sed -i 's| NULL,NULL \+/\* reserved1, reserved2 \*/| 0, 0, NULL, NULL|g' packets.pb-c.c 35 fi 36 37 # translate 0.15 output to 1.0.2 38 sed -i 's/PROTOBUF_C_BEGIN_DECLS/PROTOBUF_C__BEGIN_DECLS/g' packets.pb-c.h 39 sed -i 's/PROTOBUF_C_END_DECLS/PROTOBUF_C__END_DECLS/g' packets.pb-c.h 40 sed -i 's/PROTOBUF_C_ASSERT/assert /g' packets.pb-c.c 41 sed -i 's/PROTOBUF_C_OFFSETOF/offsetof/g' packets.pb-c.c 42 sed -i 's/PROTOBUF_C_MESSAGE_DESCRIPTOR_MAGIC/PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC/g' packets.pb-c.c 43 sed -i 's/PROTOBUF_C_ENUM_DESCRIPTOR_MAGIC/PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC/g' packets.pb-c.c 44else 45 sed -i 's/<protobuf-c\/protobuf-c.h>/"protobuf.h"/g' packets.pb-c.h 46fi 47 48mv packets.pb-c.h include 49mv packets.pb-c.c src 50