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

EAPI=8
WX_GTK_VER="3.2-gtk3"
PLOCALES="ar ast bg ca cs da de el en_GB es et_EE eu fi fr gl he hr hu it it_CH ja ko_KR lt nl nn pl pt_BR pt_PT ro ru sl sq sv tr uk zh_CN zh_TW"

inherit cmake git-r3 flag-o-matic plocale wxwidgets xdg xdg-utils eapi9-ver

DESCRIPTION="aMule, the all-platform eMule p2p client"
HOMEPAGE="https://www.amule.org/"
EGIT_REPO_URI="https://github.com/${PN}-project/${PN}.git"
#EGIT_REPO_URI="https://github.com/tgragnato/${PN}.git"

LICENSE="GPL-2+"
SLOT="0"
IUSE="daemon debug geoip +gui nls webserver stats test upnp"
REQUIRED_USE="|| ( daemon gui webserver )"

RESTRICT="!test? ( test )"

RDEPEND="
	dev-libs/crypto++:=
	sys-libs/binutils-libs:0=
	sys-libs/readline:0=
	virtual/zlib:=
	x11-libs/wxGTK:${WX_GTK_VER}=[curl]
	daemon? (
		acct-user/amule
		dev-libs/boost:=
	)
	gui? (
		dev-libs/boost:=
		x11-libs/wxGTK:${WX_GTK_VER}=[gui]
		geoip? ( dev-libs/libmaxminddb )
	)
	nls? ( virtual/libintl )
	webserver? (
		acct-user/amule
		media-libs/libpng:0=
	)
	stats? ( media-libs/gd:=[jpeg,png] )
	upnp? ( net-libs/libupnp:0= )
"
BDEPEND="
	virtual/pkgconfig
	nls? ( sys-devel/gettext )
"

PATCHES=(
	"${FILESDIR}/${PN}-3.0.0-disable-version-check.patch"
	"${FILESDIR}/${PN}-3.0.0-use-xdg-open-as-preview-default.patch"
)

src_prepare() {
	rem_locale() {
		rm "po/${1}.po" || die "removing of ${1}.po failed"
	}
	plocale_find_changes po "" ".po"
	plocale_for_each_disabled_locale rem_locale

	cmake_src_prepare
}

src_configure() {
	setup-wxwidgets

	use debug || append-cppflags -DwxDEBUG_LEVEL=0
	CMAKE_BUILD_TYPE=$(usex debug Debug ${CMAKE_BUILD_TYPE})

	local mycmakeargs=(
		-DwxWidgets_CONFIG_EXECUTABLE="${WX_CONFIG}"
		-DASIO_SOCKETS=ON
		-DBUILD_AMULECMD=OFF
		-DBUILD_ED2K=ON
		-DBUILD_FILEVIEW=OFF
		-DENABLE_MMAP=ON
		-DBUILD_DAEMON=$(usex daemon)
		-DBUILD_MONOLITHIC=OFF
		-DBUILD_TESTING=$(usex debug)
		-DBUILD_WEBSERVER=$(usex webserver)
		-DENABLE_NLS=$(usex nls)
		-DENABLE_UPNP=$(usex upnp)
	)

	if use gui; then
		mycmakeargs+=(
			-DBUILD_REMOTEGUI=ON
			-DBUILD_ALC=$(usex stats)
			-DBUILD_ALCC=$(usex stats)
			-DBUILD_CAS=$(usex stats)
			-DBUILD_WXCAS=$(usex stats)
		)
	else
		mycmakeargs+=(
			-DBUILD_REMOTEGUI=OFF
			-DBUILD_ALC=OFF
			-DBUILD_ALCC=OFF
			-DBUILD_CAS=OFF
			-DBUILD_WXCAS=OFF
		)
	fi

	cmake_src_configure
}

src_install() {
	cmake_src_install

	if use daemon; then
		newconfd "${FILESDIR}"/amuled.confd-r1 amuled
		newinitd "${FILESDIR}"/amuled.initd amuled
	fi
	if use webserver; then
		newconfd "${FILESDIR}"/amuleweb.confd-r1 amuleweb
		newinitd "${FILESDIR}"/amuleweb.initd amuleweb
	fi

	if use gui && use !daemon; then
		rm ${D}/usr/bin/amule
	fi
}

pkg_postinst() {
	if use gui; then
		xdg_desktop_database_update
		xdg_icon_cache_update
	fi
}

pkg_postrm() {
	if use gui; then
		xdg_desktop_database_update
		xdg_icon_cache_update
	fi
}