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
+}

Reply via email to