# The group tag is just to easily find this APKBUILD by some scripts for automation
# group=kde-applications
maintainer="team/kde <bribbers@disroot.org>"
pkgname=messagelib
pkgver=25.04.2
pkgrel=1
pkgdesc="KDE PIM messaging library"
# armhf blocked by qt6-qtdeclarative
# armv7, ppc64le, s390x, riscv64 blocked by qt6-qtwebengine
arch="all !armv7 !armhf !ppc64le !s390x !riscv64"
url="https://kontact.kde.org/"
license="LGPL-2.0-only OR LGPL-3.0-only AND GPL-2.0-or-later"
depends_dev="
	akonadi-contacts-dev
	akonadi-dev
	akonadi-mime-dev
	akonadi-search-dev
	gpgme-dev
	grantlee-dev
	grantleetheme-dev
	karchive-dev
	kcodecs-dev
	kcompletion-dev
	kconfig-dev
	kconfigwidgets-dev
	kcontacts-dev
	kdbusaddons-dev
	ki18n-dev
	kiconthemes-dev
	kidentitymanagement-dev
	kio-dev
	kitemviews-dev
	kjobwidgets-dev
	kldap-dev
	kmailtransport-dev
	kmbox-dev
	kmime-dev
	knewstuff-dev
	kpimtextedit-dev
	kservice-dev
	ktextwidgets-dev
	kwidgetsaddons-dev
	kwindowsystem-dev
	kxmlgui-dev
	libgravatar-dev
	libkdepim-dev
	libkleo-dev
	pimcommon-dev
	qca-qt6-dev
	qt6-qtbase-dev
	qt6-qtdeclarative-dev
	qt6-qtwebengine-dev
	sonnet-dev
	syntax-highlighting-dev
	"
makedepends="$depends_dev
	doxygen
	extra-cmake-modules
	graphviz
	samurai
	"
checkdepends="
	dbus
	procps-ng
	xwayland-run
	"
subpackages="$pkgname-dev $pkgname-lang"
_repo_url="https://invent.kde.org/pim/messagelib.git"
source="https://download.kde.org/stable/release-service/$pkgver/src/messagelib-$pkgver.tar.xz"
options="!check" # tests failing due to the following:
# FAIL!  : RecipientsEditorTest::test_addLineOnCommaPress() 'lineEdit->hasFocus()' returned FALSE. ()
# FAIL!  : RecipientsEditorTest::test_splitPastedListToLines() Compared values are not the same
#    Actual   (editor.recipients().size()): 0
#    Expected (2)                         : 2
 

# case "$CARCH" in
# 	x86) options="$options !check";;
# esac

build() {
	cmake -B build -G Ninja \
		-DCMAKE_BUILD_TYPE=RelWithDebInfo \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DBUILD_QCH=ON
	cmake --build build
}

check() {
	local skipped_tests="(mimetreeparser-bodypartformatterbasefactory"
	local tests="
		akonadi-mysql-viewer
		akonadi-sqlite-viewer
		messagecomposer-composerviewbase
		messagecomposer-cryptocomposer
		messagecomposer-messagefactoryng
		messagecomposer-replystrategy
		messagecore-autocryptrecipient
		messageviewer-dkim-dkimchecksignaturejob
		messageviewer-dkim-dkimmanagerulesdialog
		messageviewer-dkimchecksignaturejob
		messageviewer-messageparttheme-objecttreeparser
		messageviewer-messageparttheme-render
		messageviewer-messageparttheme-showonlymimepart
		messageviewer-messageparttheme-unencryptedmessage
		messageviewer-scamwebenginedetection-scamdetectionwebengine
		messageviewer-webengine-webengineaccesskeyanchorfromhtml
		mimetreeparser-basicobjecttreeparser
		templateparser-templateextracthtmlelementfrommail
		templateparser-templateextracttextfrommail
		templateparser-templateparserjob
		webengineview-createdatabasefilejob
		webengineview-urlhashing
		webengineviewer-findbar-findbarbase
		"
	case "$CARCH" in
		x86) tests="$tests webengineviewer-webengineexportpdfpagejobtest" ;;
		loongarch64) tests="$tests akonadi-mysql-viewergrantleethemesupporttest" ;;
		aarch64) tests="$tests messagecomposer-recipientseditor" ;;
	esac
	for test in $tests; do
		skipped_tests="$skipped_tests|$test"
	done
	skipped_tests="$skipped_tests)test"

	dbus-run-session wlheadless-run -- ctest --test-dir build -E "$skipped_tests"
}

package() {
	DESTDIR="$pkgdir" cmake --install build
}

sha512sums="
e24cacda9b220369fd328d3fe8732ef1e73544b8fb9b1693181fd78c80c51f511e20946b774d3d951eef4555b7f1c04aeeb43b26aebb7b7d6dfd637d49759bdd  messagelib-25.04.2.tar.xz
"
