diff options
Diffstat (limited to 'toolkit/components/protobuf/upgrade_protobuf.sh')
-rwxr-xr-x | toolkit/components/protobuf/upgrade_protobuf.sh | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/toolkit/components/protobuf/upgrade_protobuf.sh b/toolkit/components/protobuf/upgrade_protobuf.sh new file mode 100755 index 000000000..bdaa4ce63 --- /dev/null +++ b/toolkit/components/protobuf/upgrade_protobuf.sh @@ -0,0 +1,71 @@ +#!/usr/bin/env bash + +set -e + +usage() { + echo "Usage: upgrade_protobuf.sh path/to/protobuf" + echo + echo " Upgrades mozilla-central's copy of the protobuf library." + echo + echo " Get a protobuf release from here:" + echo " https://github.com/google/protobuf/releases" +} + +if [[ "$#" -ne 1 ]]; then + usage + exit 1 +fi + +PROTOBUF_LIB_PATH=$1 + +if [[ ! -d "$PROTOBUF_LIB_PATH" ]]; then + echo No such directory: $PROTOBUF_LIB_PATH + echo + usage + exit 1 +fi + +realpath() { + if [[ $1 = /* ]]; then + echo "$1" + else + echo "$PWD/${1#./}" + fi +} + +PROTOBUF_LIB_PATH=$(realpath $PROTOBUF_LIB_PATH) + +cd $(dirname $0) + +# Remove the old protobuf sources. +rm -rf src/google/* + +# Add all the new protobuf sources. +cp -r $PROTOBUF_LIB_PATH/src/google/* src/google/ + +# Remove compiler sources. +rm -rf src/google/protobuf/compiler + +# Remove test files. +find src/google -name '*test*' | xargs rm -rf + +# Remove protobuf's build files. +find src/google/ -name '.deps' | xargs rm -rf +find src/google/ -name '.dirstamp' | xargs rm -rf +rm -rf src/google/protobuf/SEBS + +# Apply custom changes for building as part of mozilla-central. + +cd ../../.. # Top level. + +echo +echo Applying custom changes for mozilla-central. If this fails, you need to +echo edit the 'toolkit/components/protobuf/src/google/*' sources manually and +echo update the 'toolkit/components/protobuf/m-c-changes.patch' patch file +echo accordingly. +echo + +patch -p1 < toolkit/components/protobuf/m-c-changes.patch + +echo +echo Successfully upgraded the protobuf lib! |