mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-24 18:58:08 -07:00
dev-libs/unittest++: workaround broken .pc file
The 'Version' field of unittest++'s .pc file is blank for two reasons: 1) CMakeLists.txt doesn't define a version, and 2) if it did define a version, it doesn't try to substitute it A new, yet-unpackaged version of app-text/enchant does a version check on the unittest++ version which falls over on it being blank. Bug: https://bugs.gentoo.org/863974 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
https://bugs.gentoo.org/863974
|
||||
https://github.com/unittest-cpp/unittest-cpp/pull/188
|
||||
https://github.com/msys2/MINGW-packages/issues/17297
|
||||
|
||||
From 91790b98e03654c72b0783cf8fbc66c5f56892f5 Mon Sep 17 00:00:00 2001
|
||||
From: Sergei Trofimovich <slyich@gmail.com>
|
||||
Date: Mon, 18 Dec 2023 19:05:55 +0000
|
||||
Subject: [PATCH] CMakeLists.txt: fix PACKAGE_VERSION substitution in .pc file
|
||||
|
||||
Before the change project built using `cmake` had Version field empty:
|
||||
|
||||
Version:
|
||||
|
||||
After the change version is set as expected:
|
||||
|
||||
Version: 2.1.0
|
||||
|
||||
Noticed as as a build failure of `echant-2.6.4` which failed to find the
|
||||
package using `pkg-config --exists --print-errors "UnitTest++ >= 1.6"`
|
||||
expression.
|
||||
---
|
||||
CMakeLists.txt | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index b4c75c9..10ecf60 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -135,6 +135,7 @@ set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||
set(exec_prefix ${CMAKE_INSTALL_PREFIX}/bin)
|
||||
set(libdir ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})
|
||||
set(includedir ${CMAKE_INSTALL_PREFIX}/include/UnitTest++)
|
||||
+set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION})
|
||||
configure_file("UnitTest++.pc.in" "UnitTest++.pc" @ONLY)
|
||||
if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
|
||||
set(pkgconfdir ${CMAKE_INSTALL_PREFIX}/libdata/pkgconfig)
|
||||
|
||||
59
dev-libs/unittest++/unittest++-2.0.0-r4.ebuild
Normal file
59
dev-libs/unittest++/unittest++-2.0.0-r4.ebuild
Normal file
@@ -0,0 +1,59 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit cmake dot-a
|
||||
|
||||
MY_PN="unittest-cpp"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
DESCRIPTION="A lightweight unit testing framework for C++"
|
||||
HOMEPAGE="https://unittest-cpp.github.io/"
|
||||
SRC_URI="https://github.com/${MY_PN}/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
PATCHES=(
|
||||
# https://github.com/unittest-cpp/unittest-cpp/commit/2423fcac7668aa9c331a2dcf024c3ca06742942d
|
||||
"${FILESDIR}"/${P}-fix-tests-with-clang.patch
|
||||
|
||||
"${FILESDIR}"/${P}-cmake-fix-pkgconfig-dir-path-on-FreeBSD.patch
|
||||
"${FILESDIR}"/${P}-Add-support-for-LIB_SUFFIX.patch
|
||||
"${FILESDIR}"/${P}-cmake4.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
|
||||
# https://github.com/unittest-cpp/unittest-cpp/pull/163
|
||||
sed -i '/run unit tests as post build step/,/Running unit tests/d' \
|
||||
CMakeLists.txt || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
lto-guarantee-fat
|
||||
|
||||
local mycmakeargs=(
|
||||
# Don't build with -Werror: https://bugs.gentoo.org/747583
|
||||
-DUTPP_AMPLIFY_WARNINGS=OFF
|
||||
-DUTPP_INCLUDE_TESTS_IN_BUILD=$(usex test)
|
||||
# Workaround for bug #863974 and broken .pc file
|
||||
-DPACKAGE_VERSION=${PV}
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
"${BUILD_DIR}/TestUnitTest++" || die "Tests failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
strip-lto-bytecode
|
||||
}
|
||||
Reference in New Issue
Block a user