| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/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
|