| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #!/bin/bash
- # Copyright The OpenTelemetry Authors
- # SPDX-License-Identifier: Apache-2.0
- set -ex
- export DEBIAN_FRONTEND=noninteractive
- [ -z "${ABSEIL_CPP_VERSION}" ] && export ABSEIL_CPP_VERSION="20240116.1"
- TOPDIR=`pwd`
- BUILD_DIR=/tmp/
- INSTALL_DIR=/usr/local/
- pushd $BUILD_DIR
- git clone --depth=1 -b ${ABSEIL_CPP_VERSION} https://github.com/abseil/abseil-cpp.git
- cd abseil-cpp
- ABSEIL_CPP_BUILD_OPTIONS=(
- "-DBUILD_TESTING=OFF"
- "-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
- "-DCMAKE_INSTALL_PREFIX=$INSTALL_DIR"
- )
- if [ ! -z "${CXX_STANDARD}" ]; then
- ABSEIL_CPP_BUILD_OPTIONS+=("-DCMAKE_CXX_STANDARD=${CXX_STANDARD}")
- ABSEIL_CPP_BUILD_OPTIONS+=("-DCMAKE_CXX_STANDARD_REQUIRED=ON")
- ABSEIL_CPP_BUILD_OPTIONS+=("-DCMAKE_CXX_EXTENSIONS=OFF")
- fi
- #
- # ABSEIL_CPP_VERSION="20240116.1" fails to build with CMake 3.30
- # ABSEIL_CPP_VERSION="20240116.2" fails to build with CMake 3.30
- # note that somehow the same builds with CMake 3.29.6
- #
- # Error reported:
- # CMake Error at CMake/AbseilHelpers.cmake:317 (target_link_libraries):
- # The link interface of target "test_allocator" contains:
- #
- # GTest::gmock
- #
- # but the target was not found. Possible reasons include:
- #
- # * There is a typo in the target name.
- # * A find_package call is missing for an IMPORTED target.
- # * An ALIAS target is missing.
- #
- # Call Stack (most recent call first):
- # absl/container/CMakeLists.txt:206 (absl_cc_library)
- #
- # Root cause:
- # https://github.com/abseil/abseil-cpp/pull/1536
- #
- # Applying fix from abseil commit 779a3565ac6c5b69dd1ab9183e500a27633117d5
- #
- # TODO(marcalff) Cleanup once abseil is upgraded to the next LTS
- if [ "${ABSEIL_CPP_VERSION}" = "20240116.1" ] || [ "${ABSEIL_CPP_VERSION}" = "20240116.2" ]; then
- echo "Patching abseil"
- patch -p1 < ${TOPDIR}/ci/fix-abseil-cpp-issue-1536.patch
- else
- echo "Not patching abseil"
- fi
- echo "Building abseil ${ABSEIL_CPP_VERSION}"
- echo "CMake build options:" "${ABSEIL_CPP_BUILD_OPTIONS[@]}"
- mkdir build && pushd build
- cmake "${ABSEIL_CPP_BUILD_OPTIONS[@]}" ..
- make -j $(nproc)
- make install
- popd
- popd
- export PATH=${INSTALL_DIR}/bin:$PATH # ensure to use the installed abseil
|