# Contributor: Bart Ribbers <bribbers@disroot.org>

# 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=akonadi
pkgver=25.04.2
pkgrel=0
pkgdesc="A cross-desktop storage service for PIM data and meta data providing concurrent read, write, and query access"
# ppc64le, s390x, riscv64, armhf blocked by kaccounts-integration
arch="all !armhf !ppc64le !s390x !riscv64"
url="https://community.kde.org/KDE_PIM"
license="LGPL-2.0-or-later"
depends="
	mariadb
	qt6-qtbase-mysql
	qt6-qtbase-sqlite
	"
depends_dev="
	boost-dev
	kcompletion-dev
	kconfig-dev
	kconfigwidgets-dev
	kcoreaddons-dev
	kcrash-dev
	kdbusaddons-dev
	ki18n-dev
	kiconthemes-dev
	kio-dev
	kitemmodels-dev
	kitemviews-dev
	kwidgetsaddons-dev
	kwindowsystem-dev
	kxmlgui-dev
	libxml2-dev
	qt6-qtbase-dev
	shared-mime-info
	sqlite-dev
	"
makedepends="$depends_dev
	extra-cmake-modules
	qt6-qttools-dev
	samurai
	"
checkdepends="
	cmd:dbus-run-session
	xvfb-run
	"
subpackages="$pkgname-dbg $pkgname-dev $pkgname-lang"
_repo_url="https://invent.kde.org/pim/akonadi.git"
source="https://download.kde.org/stable/release-service/$pkgver/src/akonadi-$pkgver.tar.xz"
options="!check" # no tests

build() {
	# make -dbg smaller
	export CFLAGS="$CFLAGS -g1"
	export CXXFLAGS="$CXXFLAGS -g1"

	case "$CARCH" in
		armv7) tests=-DBUILD_TESTING=OFF ;;
		*) tests=-DBUILD_TESTING=ON ;;
	esac
	# akonadi recurses while walking e-mail threads, so give it a decent stack
	LDFLAGS="$LDFLAGS -Wl,-z,stack-size=1024768" \
	cmake -B build -G Ninja \
		-DCMAKE_BUILD_TYPE=MinSizeRel \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DBUILD_DESIGNERPLUGIN=ON \
		$tests
	cmake --build build
}

check() {
	# akonadixml-xmldocumenttest, mimetypecheckertest and akonadi-mysql-testenvironmenttest are broken
	# All sqlite tests are hanging
	# All mysql tests are broken "Cannot connect to non-local host <hostname>"
	# tagmodeltest fails on 32-bit architectures
	local skipped_tests="(akonadixml-xmldocument"
	local tests="
		mimetypechecker
		akonadi-mysql-testenvironment
		.*sqlite.*
		.*mysql.*
		tagmodel
		"
	case "$CARCH" in
		s390x) tests="$tests
			AkonadiServer-itemcreatehandler
			AkonadiServer-relationhandler
			" ;;
	esac
	for test in $tests; do
		skipped_tests="$skipped_tests|$test"
	done
	skipped_tests="$skipped_tests)test"
	dbus-run-session -- xvfb-run -a ctest --test-dir build -E "$skipped_tests"
}

package() {
	DESTDIR="$pkgdir" cmake --install build
}
sha512sums="
7472497e78524323864be1abdd62daa5bfe3a6dd6903729424bb50f9cbb20240be2df1d3b36535ba749d8021b02e0903939ca0b79855e467d2480613c5ee2813  akonadi-25.04.2.tar.xz
"
