From 5f504adc4d5a1a6afd5f3efcf757944bce825a16 Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Fri, 16 May 2025 22:46:52 +0100 Subject: [PATCH] dev-libs/rapidjson: fix build with cmake 4 Closes: https://bugs.gentoo.org/951839 Signed-off-by: Alexey Sokolov Part-of: https://github.com/gentoo/gentoo/pull/42122 Closes: https://github.com/gentoo/gentoo/pull/42122 Signed-off-by: Sam James --- .../files/rapidjson-1.1.0-cmake4.patch | 19 ++++++ dev-libs/rapidjson/rapidjson-1.1.0-r5.ebuild | 60 +++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 dev-libs/rapidjson/files/rapidjson-1.1.0-cmake4.patch create mode 100644 dev-libs/rapidjson/rapidjson-1.1.0-r5.ebuild 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 0000000000000..dc28481a239e7 --- /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 0000000000000..e63ba7b610b0b --- /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 +}