# Template file for 'arcan'
# !! keep synced with: acfgfs aclip aloadimage
pkgname=arcan
version=0.6.3.3
revision=1
create_wrksrc=yes
build_wrksrc=arcan/src
build_style=cmake
make_cmd=make
configure_args="-DDISTR_TAG='VoidLinux' -DVIDEO_PLATFORM=egl-dri
 -DHYBRID_SDL=On -DDISABLE_WAYLAND=$(vopt_if wayland OFF ON)
 $(vopt_if luajit '-DDISABLE_JIT=OFF' '-DDISABLE_JIT=ON')"
hostmakedepends="pkg-config
 $(vopt_if wayland wayland-devel)"
makedepends="MesaLib-devel ffmpeg6-devel file-devel freetype-devel liblzma-devel
 libopenal-devel libusb-devel libvncserver-devel libxkbcommon-devel sqlite-devel
 vlc-devel SDL2-devel xcb-util-devel xcb-util-wm-devel mupdf-devel
 $(vopt_if tts 'libespeak-ng-devel')
 $(vopt_if luajit 'LuaJIT-devel' 'lua51-devel')
 $(vopt_if tesseract 'tesseract-ocr-devel leptonica-devel')
 $(vopt_if wayland 'wayland-devel wayland-protocols libxcb-devel xcb-util-wm-devel')
 "
short_desc="Combined display server, multimedia framework and game engine"
maintainer="Piraty <mail@piraty.dev>"
license="GPL-2.0-or-later, LGPL-2.0-or-later, BSD-3-Clause"
homepage="https://arcan-fe.com/"
_versionOpenal=0.6.2
distfiles="https://github.com/letoram/arcan/archive/${version}.tar.gz
 https://github.com/letoram/openal/archive/${_versionOpenal}.tar.gz>openal_arcan.${_versionOpenal}.tar.gz"
checksum="77ae043899a28110012d6f930e101d173214e6649af87564d05ccfaca5d0d726
 7c6ac2bd5228f56335da944f5a85b67d6dd95ba4d84f74be4209ba6aee38664b"

export CMAKE_GENERATOR="Unix Makefiles"

replaces="arcan-wayland>=0"

build_options="luajit tesseract tts wayland"
desc_option_tts="Enable support for text-to-speech via espeak"
desc_option_tesseract="Enable support for OCR via tesseract"
desc_option_luajit="Enable support for LuaJIT"
build_options_default="tesseract wayland"

# luajit is restricted to matching wordsize of host/target
if [ "$XBPS_TARGET_WORDSIZE" = "$XBPS_WORDSIZE" ]; then
	build_options_default+=" luajit"
fi

post_extract() {
	mv arcan-$version arcan
	rm arcan/src/platform/cmake/modules/FindPkgConfig.cmake
	# provide patched openAL. the _lwa part of the build relies on a patched
	# openAL implementation that is statically linked
	mv openal-$_versionOpenal arcan/external/git/openal
}

post_install() {
	vdoc ../README.md
	vlicense ../COPYING
	for _l in BSD GPL LGPL; do
		vlicense ../data/distr/LICENSE.${_l}
	done

	# need suid for drmMaster, dropped immediately after open+master
	chmod u+s ${DESTDIR}/usr/bin/arcan
}

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

arcan_sdl_package() {
	short_desc+=" - SDL platform server binary"
	depends="${sourcepkg}>=${version}_${revision}"
	pkg_install() {
		vmove usr/bin/arcan_sdl
	}
}
