# Template file for 'ppsspp'
pkgname=ppsspp
version=1.7.5
revision=1
build_wrksrc="ppsspp-${version}"
build_style=cmake
configure_args="-DHEADLESS=1 -DUSE_SYSTEM_FFMPEG=1 -DUNITTEST=ON
 -DUSING_QT_UI=$(vopt_if qt ON OFF)"
hostmakedepends="pkg-config $(vopt_if qt qt5-host-tools)"
makedepends="zlib-devel glew-devel ffmpeg-devel libzip-devel
 snappy-devel rapidjson
 $(vopt_if sdl2 SDL2-devel) $(vopt_if wayland wayland-devel)
 $(vopt_if qt 'qt5-devel qt5-multimedia-devel')"
depends="desktop-file-utils"
short_desc="A fast and portable PSP emulator"
maintainer="John <johnz@posteo.net>"
license="GPL-2.0-or-later"
homepage="https://www.ppsspp.org/"
distfiles="
 https://github.com/hrydgard/ppsspp/archive/v${version}.tar.gz
 https://github.com/hrydgard/ppsspp-lang/archive/67c189c.tar.gz
 https://github.com/hrydgard/glslang/archive/29619b2.tar.gz
 https://github.com/KhronosGroup/SPIRV-Cross/archive/be7425e.tar.gz
 https://github.com/Kingcom/armips/archive/9efe336.tar.gz
 https://github.com/discordapp/discord-rpc/archive/3d3ae7129d17643bc706da0a2eea85aafd10ab3a.tar.gz"
checksum="85506e2db4e12e584fa3fc7aefe9ece039614ef2989ede8ff5489bfc04476842
 929c097211cd78042c37e9c6ada170ce87968dfdf7c0d695ea4c9b6fb1726478
 5125620520d25f9a39c6d62dfcd3e087fd610dc5d163ddff6377365011c8b13f
 21afa0e32dd2d75ee51c4f5c0d16330a9d80d435d6ac9900d0c13bffdfd7b682
 73b366f30e8f3863501723e13eb5dcaf6d424b80382d17c27635567b79705ca3
 20fe5dbd7a64f7a8fdbaeb81f8dd485df61121c5054e0f7f917c6193f209ff2e"
create_wrksrc=yes

# ppsspp always tries to compile x86 unittest
# https://gist.github.com/Johnnynator/e18d59274451cff890b7235009d2e93d
case $XBPS_TARGET_MACHINE in
	x86_64* | i686*) configure_args+=" -DUNITTEST=ON";;
	armv[67]*) broken="SDL2 is not build against x11";;
	*) configure_args+=" -DUNITTEST=OFF";;
esac

build_options="wayland qt sdl2"
build_options_default="sdl2"

pre_configure() {
	# copy submodules to right location
	cp -rup ${wrksrc}/ppsspp-lang-*/* ${wrksrc}/${pkgname}-${version}/assets/lang
	cp -rup ${wrksrc}/armips-*/* ${wrksrc}/${pkgname}-${version}/ext/armips
	cp -rup ${wrksrc}/glslang-*/* ${wrksrc}/${pkgname}-${version}/ext/glslang
	cp -rup ${wrksrc}/SPIRV-Cross-*/* ${wrksrc}/${pkgname}-${version}/ext/SPIRV-Cross
	cp -rup ${wrksrc}/discord-rpc-*/* ${wrksrc}/${pkgname}-${version}/ext/discord-rpc

	# disable git versioning
	sed 's|find_package(Git)|# &|' -i ${wrksrc}/${pkgname}-${version}/git-version.cmake
	rm -rf ${pkgname}-${version}/build
}

do_install() {
	vlicense LICENSE.TXT
	vinstall icons/icon.svg 644 usr/share/pixmaps ppsspp.svg
	vinstall Qt/PPSSPP.desktop 644 usr/share/applications
	vbin build/PPSSPPHeadless ppsspp-headless
	vmkdir usr/share/ppsspp
	vcopy build/assets usr/share/ppsspp/

	if [ $build_option_sdl2 ]; then
		vbin build/PPSSPPSDL ppsspp-sdl
		sed -e 's,^Exec=.*,Exec=/usr/bin/ppsspp-sdl,' -i $DESTDIR/usr/share/applications/PPSSPP.desktop
	elif [ $build_option_qt ] ;then
		vbin build/PPSSPPQt ppsspp-qt
		sed -e 's,^Exec=.*,Exec=/usr/bin/ppsspp-qt,' -i $DESTDIR/usr/share/applications/PPSSPP.desktop
	fi
	sed -e 's,^Icon=.*,Icon=/usr/share/pixmaps/ppsspp.svg,' -i $DESTDIR/usr/share/applications/PPSSPP.desktop
}
