# 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
}