# Template file for 'brltty'
pkgname=brltty
version=6.4
revision=12
build_style=gnu-configure
configure_args="--enable-gpm --with-screen-driver=lx,sc
 --with-tables-directory=/usr/share/brltty PYTHON=/usr/bin/python3"
hostmakedepends="pkg-config python3-Cython"
makedepends="ncurses-devel alsa-lib-devel gpm-devel icu-devel python3-devel libbluetooth-devel"
short_desc="Braille display driver for Linux/Unix"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-2.0-or-later, LGPL-2.1-or-later"
homepage="https://brltty.app"
distfiles="https://brltty.app/archive/brltty-${version}.tar.xz"
checksum=bc7573b0d0ab865c36607945b64c209312405571788f3b409397726f6143eaa6
python_version=3

case "$XBPS_TARGET_MACHINE" in
	i686*|x86_64*) configure_args="${configure_args} --with-ports-package=glibc";;
	*) configure_args="${configure_args} --with-ports-package=none";;
esac

# glibc is a misnomer here, it's just ioperm inb outp and friends, works
# fine with musl.

pre_configure() {
	case "$XBPS_TARGET_MACHINE" in
		*-musl) # There is no ldconfig in musl libc
			sed -e "s;/sbin/ldconfig -n;echo;" -i configure ;;
	esac

	export PYTHON_LIBS="-L${XBPS_CROSS_BASE}/usr/lib -lpython${py3_ver}${py3_abiver}"
	export PYTHON_CPPFLAGS="-I${XBPS_CROSS_BASE}/${py3_inc}"
}

post_configure() {
	case "$XBPS_TARGET_MACHINE" in
		arm*-musl) # Fix erroneously detected "#define HAVE_SYS_IO_H 1"
			sed -i config.h -e"s;#define HAVE_SYS_IO_H 1;#undef HAVE_SYS_IO_H;" ;;
	esac
}

post_build() {
	# brltty has two problems with the xbps-src cross environment:
	#
	# - brltty has a lock.h that will be overshadowed by Python's lock.h
	#   when the build helper overrides CFLAGS to prefer the cross root
	#
	# - The brltty build process drops critical environment variables for
	#   cross compilation of Python exctensions
	#
	# To work around this, just manually build the Python package.

	cd Bindings/Python
	. "${XBPS_BUILDHELPERDIR}/python3.sh"
	python3 setup.py build --build-temp .
}

do_install() {
	make INSTALL_ROOT="${DESTDIR}" install

	local _inst_args=(
	 --skip-build --record=installed-files --root="${DESTDIR}" --prefix=/usr
	)

	( cd Bindings/Python && python3 ./setup.py install "${_inst_args[@]}" )

	vsv brltty
	vsconf Documents/brltty.conf
	vdoc Documents/ChangeLog
	vcopy Documents/Manual-BRLTTY usr/share/doc/brltty
}

brltty-devel_package() {
	short_desc+=" - development files"
	depends="${sourcepkg}-${version}_${revision}"
	pkg_install() {
		vmove usr/include
		vmove "usr/lib/*.a"
		vmove "usr/lib/*.so"
		vmove usr/share/man/man3
	}
}

python3-brlapi_package() {
	short_desc+=" - Python3 bindings"
	depends="python3"
	pkg_install() {
		vmove ${py3_sitelib}
	}
}
