62 lines
1.6 KiB
Bash
Executable File
62 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Copyright The OpenTelemetry Authors
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
set -e
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
old_grpc_version='v1.33.2'
|
|
new_grpc_version='v1.39.1'
|
|
gcc_version_for_new_grpc='5.1'
|
|
install_grpc_version=${new_grpc_version}
|
|
grpc_version='v1.39.0'
|
|
usage() { echo "Usage: $0 -v <gcc-version>" 1>&2; exit 1; }
|
|
|
|
while getopts ":v:" o; do
|
|
case "${o}" in
|
|
v)
|
|
gcc_version=${OPTARG}
|
|
;;
|
|
*)
|
|
usage
|
|
;;
|
|
esac
|
|
done
|
|
if [ -z "${gcc_version}" ]; then
|
|
gcc_version=`gcc --version | awk '/gcc/ {print $NF}'`
|
|
fi
|
|
if [[ "${gcc_version}" < "${gcc_version_for_new_grpc}" ]]; then
|
|
echo "less"
|
|
install_grpc_version=${old_grpc_version}
|
|
fi
|
|
if ! type cmake > /dev/null; then
|
|
#cmake not installed, exiting
|
|
exit 1
|
|
fi
|
|
export BUILD_DIR=/tmp/
|
|
export INSTALL_DIR=/usr/local/
|
|
pushd $BUILD_DIR
|
|
echo "installing grpc version: ${install_grpc_version}"
|
|
git clone --depth=1 -b ${install_grpc_version} https://github.com/grpc/grpc
|
|
pushd grpc
|
|
git submodule init
|
|
git submodule update --depth 1
|
|
mkdir -p "third_party/abseil-cpp/build" && pushd "third_party/abseil-cpp/build"
|
|
cmake -DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
|
|
-DCMAKE_INSTALL_PREFIX=$INSTALL_DIR ..
|
|
make -j${nproc} install && popd
|
|
mkdir -p build && pushd build
|
|
cmake -DgRPC_INSTALL=ON \
|
|
-DCMAKE_CXX_STANDARD=11 \
|
|
-DgRPC_BUILD_TESTS=OFF \
|
|
-DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \
|
|
-DCMAKE_PREFIX_PATH=$INSTALL_DIR \
|
|
..
|
|
make -j $(nproc)
|
|
make install
|
|
popd
|
|
popd
|
|
|
|
export PATH=${INSTALL_DIR}/bin:$PATH # ensure to use the installed grpc
|