# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Peter Shkenev <santurysim@gmail.com>
pkgname=libxkbcommon
pkgver=1.8.1
pkgrel=2
pkgdesc="keyboard handling library"
url="https://xkbcommon.org/"
arch="all"
license="MIT AND MIT-open-group AND HPND AND HPND-sell-variant AND LicenseRef-digital-equipment-corporation"
depends="xkeyboard-config"
depends_dev="libxkbcommon-x11=$pkgver-r$pkgrel"
makedepends="
	bison
	libxcb-dev
	libxml2-dev~2.13
	meson
	wayland-dev
	wayland-protocols
	xkeyboard-config-dev
	doxygen
	graphviz
	"
subpackages="
	$pkgname-static
	$pkgname-doc
	$pkgname-dev
	$pkgname-x11
	xkbcli
	xkbcli-doc:xkbcli_doc
	xkbcli-bash-completion
	"
source="https://github.com/xkbcommon/libxkbcommon/archive/refs/tags/xkbcommon-$pkgver.tar.gz
	allow-skip-test.patch
	"
builddir="$srcdir/libxkbcommon-xkbcommon-$pkgver"

build() {
	abuild-meson \
		-Denable-wayland=true \
		-Denable-docs=true \
		-Denable-x11=true \
		-Ddefault_library=both \
		build
	meson compile -C build
}

check() {
	meson test --print-errorlogs -C build
}

package() {
	DESTDIR="$pkgdir" meson install --no-rebuild -C build
}

doc() {
	pkgdesc="Keyboard handling library (documentation)"
	install_if="docs $pkgname=$pkgver-r$pkgrel"
	# XXX: depends on default_doc implementation details
	# Library docs are HTML in /usr/share/doc and don't require any special
	# processing, while xkbcli docs are man pages. So we move doc directory to
	# the subpackage...
	amove usr/share/doc/libxkbcommon
}

x11() {
	pkgdesc="$pkgdesc (x11 support)"

	amove usr/lib/*x11*.so.*
}

xkbcli() {
	pkgdesc="xkb command-line tool with interactive debugger"

	amove usr/bin/xkbcli
	amove usr/libexec/xkbcommon/xkbcli*
}

xkbcli_doc() {
	# ... and run default_doc here to let abuild process man pages
	default_doc
	pkgdesc="xkb command-line tool with interactive debugger (documentation)"
	install_if="docs xkbcli=$pkgver-r$pkgrel"
}

bashcomp() {
	default_bashcomp

	pkgdesc="Bash completions for xkbcli"
	install_if="xkbcli=$pkgver-r$pkgrel bash-completion"
}


sha512sums="
a11b8563b11bd085b909753fa99e5b2129343363a05d4fac44a46b334b644dbdd57c356021926e9fdcc2bf6855b90283af93e74c471c3d5677c2ed1bf19427c2  xkbcommon-1.8.1.tar.gz
77e4c1e6e370dd26a6dfa7914a2df5a5e78ccd42752694ff473b44317db242367ec815e43c979ad952ff475228d5ce9e788b670bb513e63df4d55bc3691aa0a7  allow-skip-test.patch
"
