dev-cpp/fkYAML: new package, add 0.4.2

Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
This commit is contained in:
Pavel Sobolev
2025-07-13 10:01:57 +03:00
parent 585b3b13ed
commit 71880e7c3b
5 changed files with 134 additions and 0 deletions

1
dev-cpp/fkYAML/Manifest Normal file
View File

@@ -0,0 +1 @@
DIST fkYAML-0.4.2.tar.gz 437972 BLAKE2B 24afade617172a5af8b0be3c91b069ed1782140101a67b86bb3afad230656d22e4e55f24883499ca1764a095c87a64370fdba9b0aa617c51815b25d4bdd2f374 SHA512 20a7e2a236f77e27a676348585cbf6c36d8c46f1ad0964b879eb61925e3d6545d6dda46379b897712890faa2b8d5e837b7f9cc312448a3d762f0017c618cbcd1

View File

@@ -0,0 +1,44 @@
From: Pavel Sobolev <contact@paveloom.dev>
Subject: [PATCH] Remove the space between `operator""` and `_yaml`.
This makes it compile in C++23.
Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
--- a/include/fkYAML/node.hpp
+++ b/include/fkYAML/node.hpp
@@ -1823,7 +1823,7 @@ inline namespace yaml_literals {
/// @param n The size of `s`.
/// @return The resulting `node` object deserialized from `s`.
/// @sa https://fktn-k.github.io/fkYAML/api/operator_literal_yaml/
-inline fkyaml::node operator"" _yaml(const char* s, std::size_t n) {
+inline fkyaml::node operator""_yaml(const char* s, std::size_t n) {
return fkyaml::node::deserialize(s, s + n);
}
@@ -1832,7 +1832,7 @@ inline fkyaml::node operator"" _yaml(const char* s, std::size_t n) {
/// @param n The size of `s`.
/// @return The resulting `node` object deserialized from `s`.
/// @sa https://fktn-k.github.io/fkYAML/api/operator_literal_yaml/
-inline fkyaml::node operator"" _yaml(const char16_t* s, std::size_t n) {
+inline fkyaml::node operator""_yaml(const char16_t* s, std::size_t n) {
return fkyaml::node::deserialize(s, s + n);
}
@@ -1841,7 +1841,7 @@ inline fkyaml::node operator"" _yaml(const char16_t* s, std::size_t n) {
/// @param n The size of `s`.
/// @return The resulting `node` object deserialized from `s`.
/// @sa https://fktn-k.github.io/fkYAML/api/operator_literal_yaml/
-inline fkyaml::node operator"" _yaml(const char32_t* s, std::size_t n) {
+inline fkyaml::node operator""_yaml(const char32_t* s, std::size_t n) {
return fkyaml::node::deserialize(s, s + n);
}
@@ -1850,7 +1850,7 @@ inline fkyaml::node operator"" _yaml(const char32_t* s, std::size_t n) {
/// @param s An input `char8_t` array.
/// @param n The size of `s`.
/// @return The resulting `node` object deserialized from `s`.
-inline fkyaml::node operator"" _yaml(const char8_t* s, std::size_t n) {
+inline fkyaml::node operator""_yaml(const char8_t* s, std::size_t n) {
return fkyaml::node::deserialize((const char8_t*)s, (const char8_t*)s + n);
}

View File

@@ -0,0 +1,38 @@
From: Pavel Sobolev <contact@paveloom.dev>
Subject: [PATCH] Use system `Catch2`.
Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -32,21 +32,7 @@ if(FK_YAML_CODE_COVERAGE OR FK_YAML_RUN_VALGRIND OR FK_YAML_RUN_CLANG_SANITIZERS
endif()
if(FK_YAML_BUILD_TEST OR FK_YAML_BUILD_ALL_TEST)
- set(CATCH2_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/catch2")
-
- if(NOT EXISTS ${CATCH2_ROOT_DIR}/CMakeLists.txt)
- find_package(Git REQUIRED)
- message(STATUS "Fetching git submodule: Catch2")
- execute_process(
- COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive -- ${CATCH2_ROOT_DIR}
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- RESULT_VARIABLE GIT_SUBMOD_RET)
- if(NOT GIT_SUBMOD_RET EQUAL "0")
- message(FATAL_ERROR "Failed to fetch Catch2 as a git submodule.")
- endif()
- endif()
-
- list(APPEND CMAKE_MODULE_PATH "${CATCH2_ROOT_DIR}/contrib")
+ find_package(Catch2 REQUIRED)
endif()
###########################################
@@ -140,7 +126,6 @@ endif()
###########################
if(FK_YAML_BUILD_TEST OR FK_YAML_BUILD_ALL_TEST)
- add_subdirectory(${CATCH2_ROOT_DIR})
include(CTest)
enable_testing()
add_subdirectory(tests)

View File

@@ -0,0 +1,39 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
DESCRIPTION="A C++ header-only YAML library"
HOMEPAGE="https://fktn-k.github.io/fkYAML/"
SRC_URI="https://github.com/fktn-k/fkYAML/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
IUSE="test"
RESTRICT="!test? ( test )"
BDEPEND="
test? ( =dev-cpp/catch-2* )
"
PATCHES=(
"${FILESDIR}/${PN}-0.4.2-Remove-the-space-between-operator-and-_yaml.patch"
"${FILESDIR}/${PN}-0.4.2-Use-system-Catch2.patch"
)
src_prepare() {
find thirdparty -mindepth 1 -not -name imapdl -delete
cmake_src_prepare
}
src_configure() {
local mycmakeargs=(
-DFK_YAML_BUILD_TEST=$(usex test)
)
cmake_src_configure
}

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>contact@paveloom.dev</email>
<name>Pavel Sobolev</name>
</maintainer>
<upstream>
<bugs-to>https://github.com/fktn-k/fkYAML</bugs-to>
<remote-id type="github">fktn-k/fkYAML</remote-id>
</upstream>
</pkgmetadata>