From 21325ae1b77011e74729382cedc4ab4e9ca63220 Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Thu, 17 Jun 2021 14:44:29 +0200 Subject: [PATCH] dev-cpp/yaml-cpp: enable tests, take package Closes: https://github.com/gentoo/gentoo/pull/21230 Package-Manager: Portage-3.0.18, Repoman-3.0.2 Signed-off-by: Alexey Sokolov Signed-off-by: David Seifert --- .../yaml-cpp/files/yaml-cpp-0.6.3-gtest.patch | 44 ++++++++++++++++++ dev-cpp/yaml-cpp/metadata.xml | 9 +++- dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r4.ebuild | 46 +++++++++++++++++++ 3 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-gtest.patch create mode 100644 dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r4.ebuild diff --git a/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-gtest.patch b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-gtest.patch new file mode 100644 index 0000000000000..51f2a7b563ff6 --- /dev/null +++ b/dev-cpp/yaml-cpp/files/yaml-cpp-0.6.3-gtest.patch @@ -0,0 +1,44 @@ +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 0a669d5..bc8bbdd 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -7,22 +7,7 @@ if(MSVC) + set(CMAKE_STATIC_LIBRARY_PREFIX "") + endif() + +-ExternalProject_Add( +- googletest_project +- SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/gtest-1.8.0" +- INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/prefix" +- CMAKE_ARGS +- -DCMAKE_INSTALL_PREFIX:PATH= +- -DBUILD_GMOCK=ON +- -Dgtest_force_shared_crt=ON +-) +- +-add_library(gmock UNKNOWN IMPORTED) +-set_target_properties(gmock PROPERTIES +- IMPORTED_LOCATION +- ${PROJECT_BINARY_DIR}/test/prefix/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX} +-) +- ++find_package(GTest REQUIRED CONFIG) + find_package(Threads) + + include_directories(SYSTEM "${PROJECT_BINARY_DIR}/test/prefix/include") +@@ -56,14 +41,12 @@ set_target_properties(run-tests PROPERTIES + CXX_STANDARD_REQUIRED ON + ) + +-add_dependencies(run-tests googletest_project) +- + set_target_properties(run-tests PROPERTIES + COMPILE_FLAGS "${yaml_c_flags} ${yaml_cxx_flags} ${yaml_test_flags}" + ) + target_link_libraries(run-tests + yaml-cpp +- gmock ++ GTest::gmock + ${CMAKE_THREAD_LIBS_INIT}) + + add_test(yaml-test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/run-tests) diff --git a/dev-cpp/yaml-cpp/metadata.xml b/dev-cpp/yaml-cpp/metadata.xml index 60dee465819e6..66302b48567f7 100644 --- a/dev-cpp/yaml-cpp/metadata.xml +++ b/dev-cpp/yaml-cpp/metadata.xml @@ -1,7 +1,14 @@ - + + alexey+gentoo@asokolov.org + Alexey Sokolov + + + proxy-maint@gentoo.org + Proxy Maintainers + jbeder/yaml-cpp diff --git a/dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r4.ebuild b/dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r4.ebuild new file mode 100644 index 0000000000000..4992372c53654 --- /dev/null +++ b/dev-cpp/yaml-cpp/yaml-cpp-0.6.3-r4.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS="cmake" +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/${P}.tar.gz" +S="${WORKDIR}/yaml-cpp-${P}" + +LICENSE="MIT" +SLOT="0/0.6" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="test" +RESTRICT="!test? ( test )" + +DEPEND="test? ( dev-cpp/gtest[${MULTILIB_USEDEP}] )" + +PATCHES=( + "${FILESDIR}/${P}-abi-breakage.patch" + "${FILESDIR}/${P}-CVE-2017-11692.patch" + "${FILESDIR}/${P}-fix-overflows.patch" + "${FILESDIR}/${P}-gtest.patch" +) + +src_prepare() { + sed -i \ + -e 's:INCLUDE_INSTALL_ROOT_DIR:INCLUDE_INSTALL_DIR:g' \ + yaml-cpp.pc.cmake || die + rm -r test/gtest-* || 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 +}