# Copyright 2007-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

# Snapshot of the qt6 branch: the v26.8.29 release tarball is cut from the
# Qt5 master branch, qt6 merges master regularly and carries the Qt6 fixes.
COMMIT=d49bdbe9aaed4c107cea0e3bf9504d37ccc4f363
# $ git rev-list --count ${COMMIT}
SVN_REV=10498

inherit optfeature qmake-utils toolchain-funcs xdg

DESCRIPTION="Great Qt GUI front-end for mplayer/mpv"
HOMEPAGE="https://www.smplayer.info/"
SRC_URI="https://github.com/smplayer-dev/${PN}/archive/${COMMIT}.tar.gz -> ${P}-${COMMIT:0:8}.tar.gz"
S="${WORKDIR}/${PN}-${COMMIT}"

LICENSE="GPL-2+ BSD-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
IUSE="bidi debug"

DEPEND="
	dev-qt/qt5compat:6
	dev-qt/qtbase:6=[dbus,gui,network,ssl,widgets,xml]
	dev-qt/qtdeclarative:6
	virtual/zlib:=
	x11-libs/libX11
"
RDEPEND="
	${DEPEND}
	|| (
		media-video/mpv[libass(+),X]
		media-video/mplayer[bidi?,libass,png,X]
	)
"
BDEPEND="dev-qt/qttools:6[linguist]"

PATCHES=(
	"${FILESDIR}"/${P}-advertisement_crap.patch
	"${FILESDIR}"/${PN}-18.2.0-jobserver.patch
	"${FILESDIR}"/${PN}-18.3.0-disable-werror.patch
	"${FILESDIR}"/${PN}-25.6.0_p20250903-disable-update-checker.patch #479902
	"${FILESDIR}"/${PN}-25.6.0_p20250903-no-man-compress.patch
	"${FILESDIR}"/${PN}-25.6.0_p20250903-no-googledns.patch # thx to Debian
)

src_prepare() {
	use bidi || PATCHES+=( "${FILESDIR}"/${PN}-16.4.0-zero-bidi.patch )

	default

	# Upstream Makefile sucks
	sed -i -e "/^PREFIX=/ s:/usr/local:${EPREFIX}/usr:" \
		-e "/^DOC_PATH=/ s:packages/smplayer:"${PF}":" \
		-e '/\.\/get_svn_revision\.sh/,+2c\
	cd src && $(DEFS) $(MAKE)' \
		Makefile || die

	# snapshot specialty: build wants an "SVN" revision
	echo "#define SVN_REVISION \"${SVN_REV}\"" > src/svn_revision.h || die
	echo "${SVN_REV}" > svn_revision || die

	# Upstream turns console debug output off unconditionally
	if use debug ; then
		sed -i -e '/^DEFINES += NO_DEBUG_ON_CONSOLE/d' src/smplayer.pro || die
	fi
}

src_configure() {
	pushd src > /dev/null || die
		eqmake6 QT_MAJOR_VERSION=6
	popd > /dev/null || die
}

src_compile() {
	emake CC="$(tc-getCC)"

	pushd src/translations > /dev/null || die
		$(qt6_get_bindir)/lrelease ${PN}_*.ts
	popd > /dev/null || die
}

src_install() {
	# remove unneeded copies of the GPL
	rm Copying* docs/*/gpl.html || die
	# don't install empty dirs
	rmdir --ignore-fail-on-non-empty docs/* || die

	default
}

pkg_postinst() {
	xdg_pkg_postinst
	optfeature "URL support with media-video/mpv" net-misc/yt-dlp
}