# Template file for 'arcan'
# !! keep synced with: acfgfs aclip aloadimage
pkgname=arcan
version=0.6.2.1
revision=1
create_wrksrc=yes
build_wrksrc=arcan/src
build_style=cmake
make_cmd=make
configure_args="-DDISTR_TAG='Void Linux' -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 ffmpeg-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
 $(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.5.4
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="7bf083412bc61555472877313c13116431a0a36fccbf142f97559db43b4a1475
 3a50a87c05b67c466a868cc77f8dc7f9cfc9466aeeafcd823daca0d108c504da"

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

if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
	makedepends+=" libatomic-devel"
	CFLAGS="-latomic"
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
	}
}
