summaryrefslogtreecommitdiff
path: root/dev-util/kcov/kcov-9999.ebuild
blob: 32f6b0358b92390f9b22acd663d9193bb919e5dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

PYTHON_COMPAT=( python3_{10..12} )

inherit cmake edo python-any-r1

DESCRIPTION="Kcov is a code coverage tester for compiled languages, Python and Bash"
HOMEPAGE="https://github.com/SimonKagstrom/kcov/"

if [[ "${PV}" = 9999 ]]; then
	inherit git-r3
	EGIT_REPO_URI="https://github.com/SimonKagstrom/kcov.git"
else
	SRC_URI="https://github.com/SimonKagstrom/kcov/archive/v${PV}.tar.gz -> ${P}.tar.gz"
	KEYWORDS="~amd64 ~x86"
fi

LICENSE="GPL-2 MIT"
SLOT="0"
IUSE="test"
RESTRICT="!test? ( test )"

DEPEND="
	dev-libs/elfutils
	dev-libs/libunistring:=
	dev-libs/openssl:=
	net-dns/c-ares:=
	net-dns/libidn2:=
	net-libs/libpsl
	net-misc/curl
	net-libs/nghttp2:=
	sys-libs/binutils-libs:=
	sys-libs/zlib
"

BDEPEND="test? ( ${PYTHON_DEPS} )"
RDEPEND="${DEPEND}"

PATCHES=(
	"${FILESDIR}/${PN}-remove-failing-test-conflicting-with-sandbox.patch"
)

DOCS=(
	doc/
	CONTRIBUTING.md
	INSTALL.md
	README.md
)

pkg_setup() {
	use test && python-any-r1_pkg_setup
}

src_prepare() {
	if use test; then
		sed -Ei "/skip_python2/ s/= .+/= True/" tests/tools/test_python.py \
			|| die "Cannot disable Python 2 tests"

		cat <<- EOF >> CMakeLists.txt || die "Cannot enable test building"
		add_compile_options (-g)
		add_subdirectory (tests)
		EOF
	fi

	cmake_src_prepare
}

src_configure() {
	local mycmakeargs=( -DKCOV_INSTALL_DOCDIR:PATH="share/doc/${PF}" )
	cmake_src_configure
}

src_test() {
	PYTHONPATH="${S}/tests/tools" edo "${PYTHON}" -m libkcov \
		-v \
		"${BUILD_DIR}/src/kcov" \
		"${T}" \
		"${BUILD_DIR}/tests" \
		"${S}"
}

src_install() {
	cmake_src_install

	rm "${ED}/usr/share/doc/${PF}/doc"/{CMakeLists.txt,kcov.1} || die
	rm "${ED}/usr/share/doc/${PF}"/COPYING* || die
}