commit:     485ea72f644fc219c93830b75675e048186e7dbc
Author:     Alexey Sokolov <alexey+gentoo <AT> asokolov <DOT> org>
AuthorDate: Sun Aug  3 14:55:21 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Sep  4 20:46:56 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=485ea72f

dev-cpp/yaml-cpp: fix cmake4 compatibility

Removed bundled gtest; it wasn't used, but its existence was triggering cmake 
QA warning

Closes: https://bugs.gentoo.org/957557
Signed-off-by: Alexey Sokolov <alexey+gentoo <AT> asokolov.org>
Part-of: https://github.com/gentoo/gentoo/pull/43303
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-cpp/yaml-cpp/files/yaml-cpp-0.8.0-cmake2.patch | 39 ++++++++++++++++++++
 dev-cpp/yaml-cpp/yaml-cpp-0.8.0-r2.ebuild          | 43 ++++++++++++++++++++++
 2 files changed, 82 insertions(+)

diff --git a/dev-cpp/yaml-cpp/files/yaml-cpp-0.8.0-cmake2.patch 
b/dev-cpp/yaml-cpp/files/yaml-cpp-0.8.0-cmake2.patch
new file mode 100644
index 000000000000..220dc5452772
--- /dev/null
+++ b/dev-cpp/yaml-cpp/files/yaml-cpp-0.8.0-cmake2.patch
@@ -0,0 +1,39 @@
+https://bugs.gentoo.org/957557
+From c9371de7836d113c0b14bfa15ca70f00ebb3ac6f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christoph=20Gr=C3=BCninger?= <[email protected]>
+Date: Mon, 24 Mar 2025 08:32:25 +0100
+Subject: [PATCH] [cmake] Require minimum CMake version 3.5
+
+Soon CMake 4.0 will be released. It requires that projects
+set a minimum required CMake version of 3.5. There is a
+workaround with an additional flag, but it would is better
+to increase the minimum required version.
+---
+ CMakeLists.txt      | 6 +++---
+ test/CMakeLists.txt | 1 -
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7e8a528d8..0df533a5a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,5 +1,6 @@
+-# 3.5 is actually available almost everywhere, but this a good minimum
+-cmake_minimum_required(VERSION 3.4)
++# 3.5 is actually available almost everywhere.
++# 3.30 as the upper policy limit avoids CMake deprecation warnings.
++cmake_minimum_required(VERSION 3.5...3.30)
+ 
+ # enable MSVC_RUNTIME_LIBRARY target property
+ # see https://cmake.org/cmake/help/latest/policy/CMP0091.html
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index 1c60c07c5..6949d29c1 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -3,6 +3,5 @@ find_package(Threads REQUIRED)
+ set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+ set(BUILD_MOCK ON CACHE BOOL "" FORCE)
+-set(CMAKE_POLICY_DEFAULT_CMP0048 NEW)
+ 
+ if(YAML_USE_SYSTEM_GTEST)
+   find_package(GTest)

diff --git a/dev-cpp/yaml-cpp/yaml-cpp-0.8.0-r2.ebuild 
b/dev-cpp/yaml-cpp/yaml-cpp-0.8.0-r2.ebuild
new file mode 100644
index 000000000000..552cf0c1d8d4
--- /dev/null
+++ b/dev-cpp/yaml-cpp/yaml-cpp-0.8.0-r2.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib
+
+DESCRIPTION="YAML parser and emitter in C++"
+HOMEPAGE="https://github.com/jbeder/yaml-cpp";
+SRC_URI="https://github.com/jbeder/yaml-cpp/archive/refs/tags/${PV}.tar.gz -> 
${P}.gh.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/0.8"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 
~amd64-linux ~x86-linux"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+       test? ( dev-cpp/gtest[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=(
+       "${FILESDIR}/yaml-cpp-0.8.0-gtest.patch"
+       "${FILESDIR}/yaml-cpp-0.8.0-gcc13.patch"
+       "${FILESDIR}/yaml-cpp-0.8.0-include-cstdint.patch"
+       "${FILESDIR}/yaml-cpp-0.8.0-cmake2.patch"
+)
+
+src_prepare() {
+       rm -r test/gtest-1.11.0 || die
+
+       cmake_src_prepare
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DYAML_BUILD_SHARED_LIBS=ON
+               -DYAML_CPP_BUILD_TOOLS=OFF # Don't have install rule
+               -DYAML_CPP_BUILD_TESTS=$(usex test)
+       )
+
+       cmake-multilib_src_configure
+}

Reply via email to