# Maintainer: Paul Bredbury <brebs@sent.com>
pkgname=swi-prolog
pkgver=9.2.9
pkgrel=0
pkgdesc="Versatile implementation of the Prolog programming language"
url="https://www.swi-prolog.org"
arch="all !riscv64" # missing libunwind-dev
license="BSD-2-Clause AND LGPL-3.0-or-later"
# Need to package JavaHamcrest in order to enable JPL
subpackages="$pkgname-doc $pkgname-xpce:xpce:noarch $pkgname-xpce-doc:xpce_doc:noarch $pkgname-pyc"
makedepends="
	cmake
	gmp-dev
	libarchive-dev
	libedit-dev
	libunwind-dev
	libxext-dev
	libice-dev
	libjpeg-turbo-dev
	libxinerama-dev
	libxft-dev
	libxpm-dev
	libxt-dev
	ncurses-dev
	openssl-dev
	ossp-uuid-dev
	pcre2-dev
	readline-dev
	samurai
	unixodbc-dev
	yaml-dev
	zlib-dev
	"
# The Berkeley DB test works on all but x86, which segfaults
# https://github.com/SWI-Prolog/issues/issues/103#issuecomment-968091401
[ ! "$CARCH" = "x86" ] && makedepends="$makedepends db-dev"

checkdepends="python3"
source="https://www.swi-prolog.org/download/stable/src/swipl-$pkgver.tar.gz"
builddir="$srcdir/swipl-$pkgver"

build() {
	# pgo broken with gcc12 profiles
	cmake -B build -G Ninja \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_INSTALL_PREFIX=/usr
	ninja -C build
}

check() {
	ctest --test-dir build
}

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

doc() {
	default_doc
	mkdir -p "$subpkgdir"/usr/share/swi-prolog
	mv "$pkgdir"/usr/lib/swipl/doc "$subpkgdir"/usr/share/swi-prolog
}

xpce() {
	depends="$pkgname"
	pkgdesc="X support for $pkgname"
	mkdir -p "$subpkgdir"/usr/lib/swipl
	mv "$pkgdir"/usr/lib/swipl/xpce "$subpkgdir"/usr/lib/swipl

	# Move doc files
	mkdir -p "$subpkgdir"-doc/usr/lib/swipl/xpce
	mv "$subpkgdir"/usr/lib/swipl/xpce/appl-help "$subpkgdir"-doc/usr/lib/swipl/xpce
	mv "$subpkgdir"/usr/lib/swipl/xpce/man "$subpkgdir"-doc/usr/lib/swipl/xpce
}

xpce_doc() {
	pkgdesc="X support for $pkgname (doc files)"
}

pyc() {
	pkgdesc="Precompiled Python bytecode for ${subpkgname%-pyc}"
	install_if="${subpkgname%-pyc}=$pkgver-r$pkgrel pyc"

	cd "$pkgdir" || return 0
	local IFS=$'\n'
	amove $(find usr/lib -type d -name __pycache__)
}

sha512sums="
c5e2bbbdf2d64c0af987b3a7684d2e86a40c5f16e921e430f416c8cf8790a980d32e464daa6ccb136197f0cb5b889052dc78ba01eec83c93b1c21b14ac32ef04  swipl-9.2.9.tar.gz
"
