diff --git a/dev-libs/cereal/cereal-1.3.2-r4.ebuild b/dev-libs/cereal/cereal-1.3.2-r4.ebuild new file mode 100644 index 0000000000000..51ba2183af29e --- /dev/null +++ b/dev-libs/cereal/cereal-1.3.2-r4.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Header-only C++11 serialization library" +HOMEPAGE="https://uscilab.github.io/cereal/" +SRC_URI="https://github.com/USCiLab/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86" +IUSE="doc test" +RESTRICT="!test? ( test )" + +BDEPEND="doc? ( app-text/doxygen ) + test? ( dev-cpp/doctest ) +" +DEPEND="dev-libs/rapidjson" +RDEPEND="${DEPEND}" + +PATCHES=( "${FILESDIR}"/1.3.2-clang-tuple.patch ) + +src_prepare() { + if ! use doc ; then + cmake_comment_add_subdirectory doc + fi + + # remove bundled rapidjson (bug 792444) + # rapidxml cannot be unbundled easily, see the bug for details. + rm -r include/cereal/external/rapidjson || die 'could not remove bundled rapidjson' + sed -e '/rapidjson/s|cereal/external/||' \ + -e 's/CEREAL_RAPIDJSON_NAMESPACE/rapidjson/g' \ + -i include/cereal/archives/json.hpp || die + + # remove bundled doctest + rm unittests/doctest.h || die 'could not remove bundled doctest' + sed -e 's/\"doctest\.h\"//g' \ + -i unittests/common.hpp || die + + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DBUILD_TESTS=$(usex test) + + # Avoid Boost dependency + -DSKIP_PERFORMANCE_COMPARISON=ON + + -DWITH_WERROR=OFF + ) + + # TODO: Enable if multilib? + use test && mycmakeargs+=( -DSKIP_PORTABILITY_TEST=ON ) + + cmake_src_configure +} diff --git a/dev-libs/cereal/files/1.3.2-clang-tuple.patch b/dev-libs/cereal/files/1.3.2-clang-tuple.patch new file mode 100644 index 0000000000000..5bc5dd6507997 --- /dev/null +++ b/dev-libs/cereal/files/1.3.2-clang-tuple.patch @@ -0,0 +1,34 @@ +https://bugs.gentoo.org/946812 +https://github.com/USCiLab/cereal/issues/852 +https://github.com/USCiLab/cereal/pull/872 + +From: nindanaoto +Date: Sun, 14 Sep 2025 11:02:03 +0000 +Subject: [PATCH] Fix llvm20 compile issue in tuple.hpp + +--- + include/cereal/types/tuple.hpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/cereal/types/tuple.hpp b/include/cereal/types/tuple.hpp +index 80c68075..d6bef110 100644 +--- a/include/cereal/types/tuple.hpp ++++ b/include/cereal/types/tuple.hpp +@@ -95,7 +95,7 @@ namespace cereal + template inline + static void apply( Archive & ar, std::tuple & tuple ) + { +- serialize::template apply( ar, tuple ); ++ serialize::template apply( ar, tuple ); + ar( CEREAL_NVP_(tuple_element_name::c_str(), + std::get( tuple )) ); + } +@@ -116,7 +116,7 @@ namespace cereal + template inline + void CEREAL_SERIALIZE_FUNCTION_NAME( Archive & ar, std::tuple & tuple ) + { +- tuple_detail::serialize>::value>::template apply( ar, tuple ); ++ tuple_detail::serialize>::value>::template apply( ar, tuple ); + } + } // namespace cereal +