build-gtest.sh 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/usr/bin/env bash
  2. # Copyright The OpenTelemetry Authors
  3. # SPDX-License-Identifier: Apache-2.0
  4. set -e
  5. # Switch to workspace root directory first
  6. DIR="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
  7. WORKSPACE_ROOT=$DIR/..
  8. pushd $WORKSPACE_ROOT
  9. BUILD_ROOT=${BUILD_ROOT:-/tmp/build}
  10. [[ ! -d "${BUILD_ROOT}" ]] && mkdir -p "${BUILD_ROOT}" || echo "Output directory already exists: BUILD_ROOT=${BUILD_ROOT}"
  11. GTEST_BUILD_ROOT=${BUILD_ROOT}/gtest
  12. [[ ! -d "${GTEST_BUILD_ROOT}" ]] && mkdir -p "${GTEST_BUILD_ROOT}" || echo "Output directory already exists: GTEST_BUILD_ROOT=${GTEST_BUILD_ROOT}"
  13. # Path to Google Test source. Prefer Google Test from submodule if available:
  14. export GTEST_SRC_PATH=${WORKSPACE_ROOT}/third_party/googletest
  15. if [ ! -d "${GTEST_SRC_PATH}" ]; then
  16. # If not available, then use Google Test that is installed by OS package:
  17. export GTEST_SRC_PATH=/usr/src/gtest
  18. if [ ! -d "${GTEST_SRC_PATH}" ]; then
  19. echo "GTest not found!"
  20. exit 1
  21. fi
  22. echo Building GTest from source: ${GTEST_SRC_PATH} ...
  23. fi
  24. pushd $GTEST_BUILD_ROOT
  25. cmake -Dgtest_build_samples=OFF \
  26. -Dgmock_build_samples=OFF \
  27. -Dgtest_build_tests=OFF \
  28. -Dgmock_build_tests=OFF \
  29. -DCMAKE_CXX_FLAGS="-fPIC $CXX_FLAGS -Wno-return-type" \
  30. -DCMAKE_INSTALL_PREFIX=$BUILD_ROOT \
  31. "${GTEST_SRC_PATH}"
  32. make install
  33. popd
  34. popd