Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CI] Build failures with ABSEIL 20240116 and CMAKE 3.30 #3002

Merged
merged 5 commits into from
Jul 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions ci/fix-abseil-cpp-issue-1536.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
commit 779a3565ac6c5b69dd1ab9183e500a27633117d5
Author: Derek Mauro <[email protected]>
Date: Tue Jan 30 10:13:25 2024 -0800

Avoid export of testonly target absl::test_allocator in CMake builds

Closes #1536

PiperOrigin-RevId: 602764437
Change-Id: Ia5c20a3874262a2ddb8797f608af17d7e86dd6d6

diff --git a/absl/container/CMakeLists.txt b/absl/container/CMakeLists.txt
index 449a2cad..ee9ca9c3 100644
--- a/absl/container/CMakeLists.txt
+++ b/absl/container/CMakeLists.txt
@@ -213,6 +213,7 @@ absl_cc_library(
DEPS
absl::config
GTest::gmock
+ TESTONLY
)

absl_cc_test(
37 changes: 37 additions & 0 deletions ci/install_abseil.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ 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
Expand All @@ -22,6 +24,41 @@ if [ ! -z "${CXX_STANDARD}" ]; then
ABSEIL_CPP_BUILD_OPTIONS=(${ABSEIL_CPP_BUILD_OPTIONS[@]} "-DCMAKE_CXX_STANDARD=${CXX_STANDARD}")
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
marcalff marked this conversation as resolved.
Show resolved Hide resolved
else
echo "Not patching abseil"
fi

mkdir build && pushd build
cmake "${ABSEIL_CPP_BUILD_OPTIONS[@]}" ..
make -j $(nproc)
Expand Down
4 changes: 2 additions & 2 deletions tools/format.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ fi
# No CRLF line endings, except Windows files.
"${SED[@]}" 's/\r$//' $($FIND -name '*.ps1' -prune -o \
-name '*.cmd' -prune -o -type f -print)
# No trailing spaces.
"${SED[@]}" 's/ \+$//' $($FIND -type f -print)
# No trailing spaces, except in patch.
"${SED[@]}" 's/ \+$//' $($FIND -name "*.patch" -prune -o -type f -print)

# If not overridden, try to use clang-format-18 or clang-format.
if [[ -z "$CLANG_FORMAT" ]]; then
Expand Down