diff --git a/dev-cpp/abseil-cpp/Manifest b/dev-cpp/abseil-cpp/Manifest index 24eecd1c8dc03..f1e04e0fe1e49 100644 --- a/dev-cpp/abseil-cpp/Manifest +++ b/dev-cpp/abseil-cpp/Manifest @@ -2,3 +2,5 @@ DIST abseil-cpp-20250127.0-PR1834.patch 968 BLAKE2B b563725afcae9fcbddde9aef1e49 DIST abseil-cpp-20250127.1.tar.gz 2267282 BLAKE2B 61a6f0340c3883f097c56161d67f0046398513ef716d33a7b26e55e33032262f2e5f02c678318688f7f72a5eea7a88b37abf6d2f84e52626a258c497bea80a83 SHA512 8312acf0ed74fa28c6397f3e41ada656dbd5ca2bf8db484319d74b144ad19c0ebdc77f7f03436be6c6ca1cde706b9055079233cf0d6b5ada4ca48406f8a55dd8 DIST abseil-cpp-20250512.1.tar.gz 2221441 BLAKE2B f84faffcc606b0e4ece3cd8494e6727d74faf74c2900928c317dbce1393a4e3095ecdea4529311323b99459879957841a7300fed0499eba28fc9d764c9ddca40 SHA512 d3ba654ed7dd7b432494918b2de5d8e2b0ad1c42752c5d726f20d6fe2841828fb4e8beb853e3570a11efecef725029ce5ffa3ebc434efff007e7f60735eb9856 DIST abseil-cpp-20250814.1.tar.gz 2235716 BLAKE2B ae29b10f7efb18e20a4c7e4931f20ee169775022cd9ce15c0a23e28a2c3c577d2cf30f60f0890112e45378684485b8b11b101eaf6827faa604e5ef38fb794862 SHA512 7083b73c3cf763f6f7a7edb70a5171f44d27045a0f5e52ca043e0a86379af2c50cf85dbfea30ebaa22a7bb2929452581d26b1ba18945023b057267d4c3bad2f7 +DIST abseil-cpp-20260107.0-c++23.patch 3916 BLAKE2B 63d23b1604d43f1954e51569c77f122aa93a96ceafd6f8edd8d5500140804b564f0b23f9d10432ed9ec83ec99dc852cedbf31ec9be1ceba571550a1ed711adaa SHA512 a37dd86d6cf985a614419c5cb7931535cb7624c6684ca8044fc775b7715730c8d65cd7d66616a4b09e0e1edd69390e81d5c9fad0288d7b5e140063ac6e863fe8 +DIST abseil-cpp-20260107.1.tar.gz 2301097 BLAKE2B 1c0814eefb6181a82437128c9d3c08dec0540c2353b8a317204c49b1510b311173897de4a737da6f0cc034bf1b23717dea54f0338e3794f6a56f7292f53937bc SHA512 f5012885d6b6844a9cf5ed92ad5468b8757db33dfe1364bfb232fff928e06c550c7eb4557f45186a8ac4d18b178df9be267681abab4a6de40823b574afbe9960 diff --git a/dev-cpp/abseil-cpp/abseil-cpp-20260107.1.ebuild b/dev-cpp/abseil-cpp/abseil-cpp-20260107.1.ebuild new file mode 100644 index 0000000000000..1e09118841f25 --- /dev/null +++ b/dev-cpp/abseil-cpp/abseil-cpp-20260107.1.ebuild @@ -0,0 +1,121 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..14} ) + +inherit cmake-multilib edo flag-o-matic python-any-r1 + +DESCRIPTION="Abseil Common Libraries (C++), LTS Branch" +HOMEPAGE="https://abseil.io/" +SRC_URI=" + https://github.com/abseil/abseil-cpp/archive/${PV}.tar.gz -> ${P}.tar.gz + https://github.com/abseil/abseil-cpp/commit/28e6a799ba550f8d499bfda5e100d16937804f72.patch + -> ${PN}-20260107.0-c++23.patch +" + +LICENSE="Apache-2.0" + +# ABI, we want rebuilds to avoid hidden breakage +SLOT="0/${PV:2:4}.$(ver_cut 2).0-cpp20" +# SONAME +# SLOT="0/${PV:2:4}.0.0-cpp20" + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" +IUSE="debug test test-helpers" + +RDEPEND=" + test? ( + dev-cpp/gtest:=[${MULTILIB_USEDEP}] + ) + test-helpers? ( + dev-cpp/gtest:=[${MULTILIB_USEDEP}] + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + ${PYTHON_DEPS} + test? ( + sys-libs/timezone-data + ) +" + +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}/${PN}-20230802.0-sdata-tests.patch" + "${FILESDIR}/${PN}-20240722.0-lto-odr.patch" + # https://github.com/abseil/abseil-cpp/issues/1992 + "${DISTDIR}/${PN}-20260107.0-c++23.patch" +) + +src_prepare() { + cmake_src_prepare + + use ppc && eapply "${FILESDIR}/${PN}-atomic.patch" + + # un-hardcode abseil compiler flags + # 942192 + sed -i \ + -e '/NOMINMAX/d' \ + absl/copts/copts.py || die + + # now generate cmake files + python_fix_shebang absl/copts/generate_copts.py + edo absl/copts/generate_copts.py +} + +multilib_src_configure() { + append-cxxflags "$(usex debug '-DDEBUG' '-DNDEBUG')" + + if [[ ${ABI} == x86 ]]; then + # error: ‘_mm_cvtsi128_si64’ was not declared in this scope + # maybe fixed in 4bd9ee20 + local _CXXFLAGS="${CXXFLAGS}" + local CXXFLAGS="${_CXXFLAGS} -mno-aes" + fi + + local mycmakeargs=( + -DCMAKE_CXX_STANDARD=20 + -DABSL_ENABLE_INSTALL="yes" + -DABSL_USE_EXTERNAL_GOOGLETEST="yes" + -DABSL_PROPAGATE_CXX_STD="yes" + + # TEST_HELPERS needed for protobuf (bug #915902) + -DABSL_BUILD_TEST_HELPERS="$(usex test-helpers)" + + -DABSL_BUILD_TESTING="$(usex test)" + ) + # intentional use, it requires both variables for tests. + # (BUILD_TESTING AND ABSL_BUILD_TESTING) + if use test; then + mycmakeargs+=( + -DBUILD_TESTING="yes" + ) + fi + + cmake_src_configure +} + +multilib_src_test() { + if ! use amd64; then + CMAKE_SKIP_TESTS=( + absl_symbolize_test + ) + + if use ppc; then + CMAKE_SKIP_TESTS+=( + absl_failure_signal_handler_test + ) + fi + else + if ! multilib_is_native_abi; then + CMAKE_SKIP_TESTS+=( + absl_hash_instantiated_test + ) + fi + fi + + cmake_src_test +}