# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

# BENTOO-DIVERGENCE: PATCHES - none, where ::gentoo wraps sentry_fuzz_json in
# if(0) via sentry-native-0.6.5_no-fuzz-test.patch. Deliberately not copied, and
# the reason changed once the upstream file was actually read.
#
# ::gentoo's rationale is about RUNNING the fuzzer: their patch drops both the
# target and the add_test that registered it, because sentry_fuzz_json needs a
# special, performance-killing build to work at all. In 0.16.5 that add_test is
# GONE - checked 2026-09-07 in tests/unit/CMakeLists.txt, where the only
# add_test calls are sentry/unit-tests and the per-case sentry/* ones. The
# fuzz target is compiled under USE=test and never executed.
#
# So the patch would buy one fewer compiled target, not a test that stops
# failing, and it does not apply as written either (hunk 2 fails; the file was
# restructured since 0.6.5). Carrying a rebased downstream patch to skip a build
# target is maintenance cost with no correctness behind it.
#
# CORRECTED 2026-09-07: an earlier version of this tag claimed the target was
# "built and registered", which was wrong on the second half and made ::gentoo's
# reason look like it still applied here.
inherit cmake

DESCRIPTION="Sentry SDK for C, C++ and native applications"
HOMEPAGE="https://sentry.io/ https://github.com/getsentry/sentry-native"
SRC_URI="https://github.com/getsentry/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+breakpad +curl test"
RESTRICT="!test? ( test )"

RDEPEND="
	breakpad? ( dev-util/breakpad )
	curl? (
		net-misc/curl
		virtual/zlib:=
	)
"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"

src_configure() {
	local mycmakeargs=(
		-DSENTRY_BUILD_EXAMPLES=OFF
		-DSENTRY_BACKEND=$(usex breakpad "breakpad" "inproc")
		-DSENTRY_BUILD_TESTS=$(usex test)
		-DSENTRY_TRANSPORT=$(usex curl "curl" "none")
		-DSENTRY_TRANSPORT_COMPRESSION=$(usex curl)
	)
	# Avoid "not used by the project" warnings when USE=-breakpad
	if use breakpad; then
		mycmakeargs+=( -DSENTRY_BREAKPAD_SYSTEM=ON )
	fi

	cmake_src_configure
}