|
|
@@ -0,0 +1,60 @@
|
|
|
+#!/bin/bash
|
|
|
+
|
|
|
+set -e
|
|
|
+
|
|
|
+. /etc/os-release
|
|
|
+
|
|
|
+export SOURCE_ROOT=$HOME/downloads/grpc
|
|
|
+export BUILD_ROOT=$HOME/build/grpc
|
|
|
+export INSTALL_ROOT=$HOME/.local
|
|
|
+
|
|
|
+function build_grpc() {
|
|
|
+ # https://grpc.io/docs/languages/cpp/quickstart/
|
|
|
+ if [ -L $HOME/.local/bin/protoc ]
|
|
|
+ then
|
|
|
+ echo 'already exists!'
|
|
|
+ exit 0
|
|
|
+ fi
|
|
|
+ if [ -d $SOURCE_ROOT ]
|
|
|
+ then
|
|
|
+ cd $SOURCE_ROOT
|
|
|
+ git checkout master
|
|
|
+ git pull
|
|
|
+ git checkout $1
|
|
|
+ # fix unable to find current revision in submodule path
|
|
|
+ # git pull --recurse-submodules
|
|
|
+ git submodule update --init --recursive
|
|
|
+ else
|
|
|
+ git clone --recurse-submodules -b $1 https://github.com/grpc/grpc.git $SOURCE_ROOT
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [ -d $BUILD_ROOT ]
|
|
|
+ then
|
|
|
+ rm -r $BUILD_ROOT
|
|
|
+ fi
|
|
|
+ mkdir -p $BUILD_ROOT
|
|
|
+ cd $BUILD_ROOT
|
|
|
+ CC=clang CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Release \
|
|
|
+ -DABSL_PROPAGATE_CXX_STD=ON \
|
|
|
+ -DgRPC_INSTALL=ON -DgRPC_SSL_PROVIDER=package -DgRPC_BUILD_TESTS=OFF \
|
|
|
+ -DCMAKE_INSTALL_PREFIX=$INSTALL_ROOT $SOURCE_ROOT
|
|
|
+ make # -j $(nproc --ignore=2)
|
|
|
+ make install
|
|
|
+}
|
|
|
+
|
|
|
+if [ "$#" -ne 1 ]
|
|
|
+then
|
|
|
+ echo "USAGE: $0 GRPC_VERSION"
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+build_grpc $1
|
|
|
+
|
|
|
+
|
|
|
+if [[ $UBUNTU_CODENAME == "bionic" ]]
|
|
|
+then
|
|
|
+ cp $SOURCE_ROOT/third_party/re2/re2.pc $HOME/.local/lib/pkgconfig/
|
|
|
+fi
|
|
|
+
|
|
|
+echo "done($1)."
|
|
|
+exit 0
|