setup_googletest.sh 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #!/bin/bash
  2. # Copyright The OpenTelemetry Authors
  3. # SPDX-License-Identifier: Apache-2.0
  4. set -e
  5. export DEBIAN_FRONTEND=noninteractive
  6. apt-get update
  7. if [ -z "${GOOGLETEST_VERSION}" ]; then
  8. # Version by default. Requires C++14.
  9. export GOOGLETEST_VERSION=1.14.0
  10. fi
  11. OLD_GOOGLETEST_VERSION_REGEXP="^1\.([0-9]|10|11|12)(\..*)?$"
  12. if [[ ${GOOGLETEST_VERSION} =~ ${OLD_GOOGLETEST_VERSION_REGEXP} ]]; then
  13. # Old (up to 1.12.x included) download URL format.
  14. GOOGLETEST_VERSION_PATH="release-${GOOGLETEST_VERSION}"
  15. GOOGLETEST_FOLDER_PATH="googletest-release-${GOOGLETEST_VERSION}"
  16. else
  17. # New (since 1.13.0) download URL format.
  18. GOOGLETEST_VERSION_PATH="v${GOOGLETEST_VERSION}"
  19. GOOGLETEST_FOLDER_PATH="googletest-${GOOGLETEST_VERSION}"
  20. fi
  21. googletest_install()
  22. {
  23. # Follows these instructions
  24. # https://gist.github.com/dlime/313f74fd23e4267c4a915086b84c7d3d
  25. tmp_dir=$(mktemp -d)
  26. pushd $tmp_dir
  27. wget https://github.com/google/googletest/archive/${GOOGLETEST_VERSION_PATH}.tar.gz
  28. tar -xf ${GOOGLETEST_VERSION_PATH}.tar.gz
  29. cd ${GOOGLETEST_FOLDER_PATH}/
  30. mkdir build && cd build
  31. cmake .. -DBUILD_SHARED_LIBS=ON -DINSTALL_GTEST=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr
  32. make -j $(nproc)
  33. make install
  34. ldconfig
  35. popd
  36. }
  37. set +e
  38. echo \
  39. libbenchmark-dev \
  40. zlib1g-dev \
  41. sudo \
  42. libcurl4-openssl-dev \
  43. nlohmann-json-dev \
  44. nlohmann-json3 \
  45. nlohmann-json3-dev | xargs -n 1 apt-get install --ignore-missing --no-install-recommends --no-install-suggests -y
  46. set -e
  47. googletest_install