commit: 5f504adc4d5a1a6afd5f3efcf757944bce825a16 Author: Alexey Sokolov <alexey+gentoo <AT> asokolov <DOT> org> AuthorDate: Fri May 16 21:46:52 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Wed May 21 19:52:01 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5f504adc
dev-libs/rapidjson: fix build with cmake 4 Closes: https://bugs.gentoo.org/951839 Signed-off-by: Alexey Sokolov <alexey+gentoo <AT> asokolov.org> Part-of: https://github.com/gentoo/gentoo/pull/42122 Closes: https://github.com/gentoo/gentoo/pull/42122 Signed-off-by: Sam James <sam <AT> gentoo.org> .../rapidjson/files/rapidjson-1.1.0-cmake4.patch | 19 +++++++ dev-libs/rapidjson/rapidjson-1.1.0-r5.ebuild | 60 ++++++++++++++++++++++ 2 files changed, 79 insertions(+) diff --git a/dev-libs/rapidjson/files/rapidjson-1.1.0-cmake4.patch b/dev-libs/rapidjson/files/rapidjson-1.1.0-cmake4.patch new file mode 100644 index 000000000000..dc28481a239e --- /dev/null +++ b/dev-libs/rapidjson/files/rapidjson-1.1.0-cmake4.patch @@ -0,0 +1,19 @@ +https://bugs.gentoo.org/951839 +https://github.com/Tencent/rapidjson/issues/2159 fixed in git already + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,4 +1,4 @@ +-CMAKE_MINIMUM_REQUIRED(VERSION 2.8) ++CMAKE_MINIMUM_REQUIRED(VERSION 3.5) + if(POLICY CMP0025) + # detect Apple's Clang + cmake_policy(SET CMP0025 NEW) +--- a/example/CMakeLists.txt ++++ b/example/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 2.8) ++cmake_minimum_required(VERSION 3.5) + + if(POLICY CMP0054) + cmake_policy(SET CMP0054 NEW) diff --git a/dev-libs/rapidjson/rapidjson-1.1.0-r5.ebuild b/dev-libs/rapidjson/rapidjson-1.1.0-r5.ebuild new file mode 100644 index 000000000000..e63ba7b610b0 --- /dev/null +++ b/dev-libs/rapidjson/rapidjson-1.1.0-r5.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="A fast JSON parser/generator for C++ with both SAX/DOM style API" +HOMEPAGE="https://rapidjson.org/" + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/miloyip/rapidjson.git" + EGIT_SUBMODULES=() + inherit git-r3 +else + SRC_URI="https://github.com/miloyip/rapidjson/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + S="${WORKDIR}/rapidjson-${PV}" +fi + +LICENSE="MIT" +SLOT="0" +IUSE="doc examples test" +RESTRICT="!test? ( test )" + +BDEPEND=" + doc? ( app-text/doxygen ) + test? ( dev-cpp/gtest ) +" + +PATCHES=( + "${FILESDIR}/${P}-gcc-7.patch" + "${FILESDIR}/${P}-system_gtest.patch" + "${FILESDIR}/${P}-valgrind_optional.patch" + "${FILESDIR}/${P}-gcc14-const.patch" + "${FILESDIR}/${P}-cmake4.patch" +) + +src_prepare() { + cmake_src_prepare + + sed -i -e 's| -march=native||g' CMakeLists.txt || die + sed -i -e 's| -Werror||g' CMakeLists.txt example/CMakeLists.txt test/unittest/CMakeLists.txt || die +} + +src_configure() { + local mycmakeargs=( + -DDOC_INSTALL_DIR="${EPREFIX}/usr/share/doc/${PF}" + -DLIB_INSTALL_DIR="${EPREFIX}/usr/$(get_libdir)" + -DRAPIDJSON_BUILD_CXX11=OFF # latest gtest requires C++14 or later + -DRAPIDJSON_BUILD_DOC=$(usex doc) + -DRAPIDJSON_BUILD_EXAMPLES=$(usex examples) + -DRAPIDJSON_BUILD_TESTS=$(usex test) + -DRAPIDJSON_BUILD_THIRDPARTY_GTEST=OFF + ) + use test && mycmakeargs+=( + -DVALGRIND_EXECUTABLE= + ) + cmake_src_configure +}
