PORTNAME=	kmymoney
PORTVERSION=	5.1.3
PORTREVISION=	5
CATEGORIES=	finance kde
MASTER_SITES=	KDE/stable/${PORTNAME}/${PORTVERSION}/src

MAINTAINER=	jhale@FreeBSD.org
COMMENT=	KDE personal finance manager
WWW=		https://kmymoney.org/

LICENSE=	GPLv2+
LICENSE_FILE=	${WRKSRC}/LICENSES/GPL-2.0-or-later.txt

LIB_DEPENDS=	libalkimia5.so:finance/alkimia \
		libKChart.so:graphics/kdiagram

USES=		cmake compiler:c++14-lang desktop-file-utils \
		gettext-runtime:build gettext-tools kde:5 \
		pkgconfig qt:5 shared-mime-info shebangfix tar:xz
USE_QT=		buildtools:build core dbus gui network printsupport \
		qmake:build sql testlib:build xml webengine widgets
USE_KDE=	activities archive codecs completion config \
		configwidgets coreaddons doctools:build ecm:build i18n \
		itemmodels itemviews jobwidgets kcmutils \
		kio notifications textwidgets service sonnet \
		wallet widgetsaddons xmlgui
USE_LDCONFIG=	yes

SHEBANG_FILES=	kmymoney/misc/financequote.pl

CMAKE_ON=	ENABLE_WEBENGINE

OPTIONS_GROUP=		PLUGINS
OPTIONS_GROUP_PLUGINS=	CALENDAR KBANKING OFX SQLCIPHER WOOB
OPTIONS_DEFINE=		ADDRESSBOOK GNUPG HOLIDAYS QUOTES
OPTIONS_DEFAULT=	CALENDAR GNUPG HOLIDAYS KBANKING OFX QUOTES
OPTIONS_SUB=		yes

ADDRESSBOOK_DESC=	Address book support
ADDRESSBOOK_USE=	kde=akonadi,contacts,identitymanagement
ADDRESSBOOK_CMAKE_BOOL_OFF=	CMAKE_DISABLE_FIND_PACKAGE_KF5Akonadi \
				CMAKE_DISABLE_FIND_PACKAGE_KF5Contacts \
				CMAKE_DISABLE_FIND_PACKAGE_KF5IdentityManagement

CALENDAR_DESC=		iCalendar exporter
CALENDAR_LIB_DEPENDS=	libical.so:devel/libical
CALENDAR_CMAKE_BOOL=	ENABLE_LIBICAL

GNUPG_LIB_DEPENDS=	libgpgmepp.so:security/gpgme-cpp
GNUPG_CMAKE_BOOL_OFF=	CMAKE_DISABLE_FIND_PACKAGE_Gpgmepp \
			CMAKE_DISABLE_FIND_PACKAGE_KF5Gpgmepp

HOLIDAYS_DESC=		Holidays support
HOLIDAYS_USE=		kde=holidays
HOLIDAYS_CMAKE_BOOL_OFF=	CMAKE_DISABLE_FIND_PACKAGE_KF5Holidays

KBANKING_DESC=		Online banking via KBanking (AqBanking)
KBANKING_LIB_DEPENDS=	libgwenhywfar.so:devel/gwenhywfar \
			libgwengui-qt5.so:devel/gwenhywfar-qt5 \
			libaqbanking.so:finance/aqbanking
KBANKING_USE=		qt=declarative
KBANKING_CMAKE_BOOL=	ENABLE_KBANKING

OFX_DESC=		OFX (Open Financial Exchange) importer
OFX_LIB_DEPENDS=	libofx.so:finance/libofx
OFX_CMAKE_BOOL=		ENABLE_OFXIMPORTER

QUOTES_DESC=		Online stock and currency price quotes
QUOTES_USES=		perl5
QUOTES_USE=		PERL5=run
QUOTES_RUN_DEPENDS=	p5-Date-Manip>=0:devel/p5-Date-Manip \
			p5-Finance-Quote>=0:finance/p5-Finance-Quote \
			p5-XML-Parser>=0:textproc/p5-XML-Parser \
			p5-XML-Writer>=0:textproc/p5-XML-Writer \
			p5-libwww>=0:www/p5-libwww

SQLCIPHER_DESC=		KMyMoney database encryption
SQLCIPHER_LIB_DEPENDS=	libsqlcipher.so:databases/sqlcipher
SQLCIPHER_CMAKE_BOOL=	ENABLE_SQLCIPHER

WOOB_DESC=		Online banking via Web Outside Of Browsers
WOOB_BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}woob-qt>0:www/py-woob-qt@${PY_FLAVOR}
WOOB_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}woob-qt>0:www/py-woob-qt@${PY_FLAVOR}
WOOB_USES=		python
WOOB_CMAKE_BOOL=	ENABLE_WOOB

.if defined(MAINTAINER_MODE)
# Apply additional substitutions to pkg-plist generated by the 'makeplist' target
create-plist: stage
	@(cd ${.CURDIR} && ${MAKE} makeplist > pkg-plist && \
	${SED} -i "" -E -e '1d' \
		-e '/icalendar/s|^|%%CALENDAR%%|g' -e '/kbanking/s|^|%%KBANKING%%|g' \
		-e '/ofximport/s|^|%%OFX%%|g' -e '/qsqlcipher/s|^|%%SQLCIPHER%%|g' \
		-e '/woob.(rc|so)/s|^|%%WOOB%%|g' \
		pkg-plist)
.endif

.include <bsd.port.mk>
