PORTNAME=	amule
DISTVERSION=	3.0.0
CATEGORIES=	net-p2p

MAINTAINER=	eduardo@FreeBSD.org
COMMENT=	All-platform eMule p2p client
WWW=		https://www.amule.org/

LICENSE=	GPLv2+
LICENSE_FILE=	${WRKSRC}/docs/COPYING

LIB_DEPENDS=	libbfd-2.44.so:devel/binutils \
		libcryptopp.so:security/cryptopp \
		libcurl.so:ftp/curl \
		libsframe.so:devel/binutils \
		libzstd.so:archivers/zstd
#BUILD_DEPENDS=	ccache>0:devel/ccache #TESTING

USES=		cmake:testing gettext-runtime gnome localbase:ldflags pkgconfig
USE_GITHUB=	yes
GH_ACCOUNT=	amule-org
USE_GNOME=	glib20
USE_WX=		3.2

#CMAKE_ON=	CMAKE_DISABLE_FIND_PACKAGE_ccache ###doesn't disable it. openbsd patched CMakelists.txt by removing code or [1]
#CMAKE_ON=	CMAKE_DISABLE_FIND_PACKAGE_Git ##Configure fails

#TESTED: ccache isn't used if present on system [1]
#NOT TESTED: Is our defined GITDATE respected ig git present on system?

CMAKE_ARGS+=	-DGITDATE="${HOSTARCH}-portbld-${OPSYS:tl}-${OSREL:R}" \
		-DCCACHE_PROGRAM=""

OPTIONS_DEFINE=		ALC ALCC AMULECMD CAS DEBUG DOCS ED2K FILEVIEW \
			NLS UPNP WEBSERVER WXCAS
OPTIONS_MULTI=		COMPONENTS
OPTIONS_MULTI_COMPONENTS=AMULEDAEMON AMULEGUI MONOLITHIC
AMULECMD_IMPLIES=	AMULEDAEMON
WEBSERVER_IMPLIES=	AMULEDAEMON

#MMAP_DESC=		Use mapped memory ###REMOVED(?)
#XAS_DESC=		Install XChat2 plugin ###RETIRED

ALC_DESC=		Compile aMule Link Creator for GUI
ALCC_DESC=		Compile aMule Link Creator for console
AMULECMD_DESC=		Compile aMule command line client
AMULEDAEMON_DESC=	Compile aMule daemon version
AMULEGUI_DESC=		Compile aMule remote GUI
CAS_DESC=		Compile aMule Statistics for console
ED2K_DESC=		Compile aMule ed2k links handler
FILEVIEW_DESC=		Compile file viewer for console (EXPERIMENTAL)
MONOLITHIC_DESC=	Compile monolithic aMule
WXCAS_DESC=		Compile aMule Statistics for GUI
OPTIONS_DEFAULT=	ALC ALCC AMULECMD AMULEDAEMON AMULEGUI CAS ED2K \
			FILEVIEW MONOLITHIC WEBSERVER WXCAS
OPTIONS_SUB=		yes

#DEBUG_CONFIGURE_ENABLE=	debug
#DEBUG_CMAKE_ON=	-DCMAKE_BUILD_TYPE:STRING=Debug
# Doesn't work: "Which mode should aMule be compiled in? Release" ###REMOVE OPTION?

NLS_USES=	gettext-tools
NLS_CMAKE_BOOL=	ENABLE_NLS

ALC_CMAKE_BOOL=	BUILD_ALC

ALCC_CMAKE_BOOL=	BUILD_ALCC

AMULECMD_CMAKE_BOOL=	BUILD_AMULECMD
AMULECMD_USES=		readline

AMULEDAEMON_CMAKE_BOOL=	BUILD_DAEMON
AMULEDAEMON_USE=	RC_SUBR=amuled

AMULEGUI_CMAKE_BOOL=	BUILD_REMOTEGUI

#BOOST_CONFIGURE_WITH=	boost ###RETIRED CONFIG
#BOOST_LIB_DEPENDS=	libboost_thread.so:devel/boost-libs
#BOOST_USES=		autoreconf

CAS_CMAKE_BOOL=		BUILD_CAS
CAS_LIB_DEPENDS=	libgd.so:graphics/gd

ED2K_CMAKE_BOOL=	BUILD_ED2K
ED2K_CONFLICTS=		ed2k-hash*

FILEVIEW_CMAKE_BOOL=	BUILD_FILEVIEW

#MMAP_CONFIGURE_ENABLE=	mmap ###REMOVED

MONOLITHIC_CMAKE_BOOL=	BUILD_MONOLITHIC

UPNP_LIB_DEPENDS=	libupnp.so:devel/upnp
UPNP_CMAKE_BOOL=	ENABLE_UPNP

WEBSERVER_CMAKE_BOOL=	BUILD_WEBSERVER
WEBSERVER_LIB_DEPENDS=	libpng.so:graphics/png
WEBSERVER_USES=		readline

# Build fails if only option selected
WXCAS_CMAKE_BOOL=	BUILD_WXCAS

#XAS_CONFIGURE_ENABLE=	xas ###RETIRED
#XAS_USE=	PERL5+=run

.include <bsd.port.options.mk>

#NEED RUN-TEST
# Fix segmentation fault, PR 266866
# see also 5a19c08: security/cryptopp: Update to 8.7.0
#.if ${ARCH} == i386 || ${ARCH} == amd64
#CXXFLAGS+=	-DCRYPTOPP_DISABLE_ASM
#.endif

.if ${PORT_OPTIONS:MAMULEGUI} || ${PORT_OPTIONS:MMONOLITHIC}
PLIST_SUB+=	AMULESKIN=""
.else
PLIST_SUB+=	AMULESKIN="@comment "
.endif

.include <bsd.port.mk>
