@@ -12,16 +12,26 @@ std_version='14'
1212install_grpc_version=${new_grpc_version}
1313install_dir=' /usr/local/'
1414build_shared_libs=' '
15+ build_internal_abseil_cpp=1
16+ GRPC_BUILD_OPTIONS=()
1517usage () { echo " Usage: $0 [-v <gcc-version>] [-i <install_dir>" ] 1>&2 ; exit 1; }
1618
17- while getopts " :v:i:r:s:TH- " o; do
19+ while getopts " :v:i:p: r:s:TH" o; do
1820 case " ${o} " in
1921 v)
2022 gcc_version=${OPTARG}
2123 ;;
2224 i)
2325 install_dir=${OPTARG}
2426 ;;
27+ p)
28+ if [[ " ${OPTARG} " == " protobuf" ]]; then
29+ GRPC_BUILD_OPTIONS=(${GRPC_BUILD_OPTIONS[@]} " -DgRPC_PROTOBUF_PROVIDER=package" )
30+ elif [[ " ${OPTARG} " == " abseil-cpp" ]]; then
31+ GRPC_BUILD_OPTIONS=(${GRPC_BUILD_OPTIONS[@]} " -DgRPC_ABSL_PROVIDER=package" )
32+ build_internal_abseil_cpp=0
33+ fi
34+ ;;
2535 r)
2636 install_grpc_version=${OPTARG}
2737 ;;
@@ -34,8 +44,6 @@ while getopts ":v:i:r:s:TH-" o; do
3444 H)
3545 build_shared_libs=" ON"
3646 ;;
37- -)
38- break
3947 ;;
4048 * )
4149 usage
@@ -65,22 +73,26 @@ git clone --depth=1 -b ${install_grpc_version} https://github.com/grpc/grpc
6573pushd grpc
6674git submodule init
6775git submodule update --depth 1
68- mkdir -p " third_party/abseil-cpp/build" && pushd " third_party/abseil-cpp/build"
69- set -x
7076
71- ABSEIL_CPP_BUILD_OPTIONS=(
72- -DCMAKE_BUILD_TYPE=Release
73- -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE
74- -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR
75- )
76- if [ ! -z " $build_shared_libs " ]; then
77- ABSEIL_CPP_BUILD_OPTIONS=(${ABSEIL_CPP_BUILD_OPTIONS[@]} " -DBUILD_SHARED_LIBS=$build_shared_libs " )
77+ if [[ $build_internal_abseil_cpp -ne 0 ]]; then
78+ mkdir -p " third_party/abseil-cpp/build" && pushd " third_party/abseil-cpp/build"
79+ set -x
80+
81+ ABSEIL_CPP_BUILD_OPTIONS=(
82+ -DCMAKE_BUILD_TYPE=Release
83+ -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE
84+ -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR
85+ )
86+ if [ ! -z " $build_shared_libs " ]; then
87+ ABSEIL_CPP_BUILD_OPTIONS=(${ABSEIL_CPP_BUILD_OPTIONS[@]} " -DBUILD_SHARED_LIBS=$build_shared_libs " )
88+ fi
89+ cmake ${ABSEIL_CPP_BUILD_OPTIONS[@]} ..
90+ cmake --build . -j${nproc} --target install && popd
7891fi
79- cmake ${ABSEIL_CPP_BUILD_OPTIONS[@]} ..
80- cmake --build . -j${nproc} --target install && popd
8192mkdir -p build && pushd build
8293
8394GRPC_BUILD_OPTIONS=(
95+ ${GRPC_BUILD_OPTIONS[@]}
8496 -DgRPC_INSTALL=ON
8597 -DCMAKE_CXX_STANDARD=${std_version}
8698 -DgRPC_BUILD_TESTS=OFF
0 commit comments