2
0
Эх сурвалжийг харах

:hammer: add grpc building script

Jeremy Zheng 2 жил өмнө
parent
commit
b75c61d8c0
1 өөрчлөгдсөн 60 нэмэгдсэн , 0 устгасан
  1. 60 0
      scripts/grpc.sh

+ 60 - 0
scripts/grpc.sh

@@ -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