| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | #!/bin/bash# Copyright The OpenTelemetry Authors# SPDX-License-Identifier: Apache-2.0set -exexport DEBIAN_FRONTEND=noninteractive[ -z "${ABSEIL_CPP_VERSION}" ] && export ABSEIL_CPP_VERSION="20240116.1"TOPDIR=`pwd`BUILD_DIR=/tmp/INSTALL_DIR=/usr/local/pushd $BUILD_DIRgit clone --depth=1 -b ${ABSEIL_CPP_VERSION} https://github.com/abseil/abseil-cpp.gitcd abseil-cppABSEIL_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 LTSif [ "${ABSEIL_CPP_VERSION}" = "20240116.1" ] || [ "${ABSEIL_CPP_VERSION}" = "20240116.2" ]; then  echo "Patching abseil"  patch -p1 < ${TOPDIR}/ci/fix-abseil-cpp-issue-1536.patchelse  echo "Not patching abseil"fiecho "Building abseil ${ABSEIL_CPP_VERSION}"echo "CMake build options:" "${ABSEIL_CPP_BUILD_OPTIONS[@]}"mkdir build && pushd buildcmake "${ABSEIL_CPP_BUILD_OPTIONS[@]}" ..make -j $(nproc)make installpopdpopdexport PATH=${INSTALL_DIR}/bin:$PATH  # ensure to use the installed abseil
 |