# Template file for 'ppsspp'
# !! any change to ffmpeg should be tested with apropiate games,
# major ffmpeg updates have a high likelyhood of breaking video playback
pkgname=ppsspp
version=1.19.3
revision=1
build_style=cmake
configure_args="-DHEADLESS=1 -DUSE_SYSTEM_FFMPEG=1 -DUNITTEST=ON
 -DUSING_QT_UI=$(vopt_if qt ON OFF) -DUSE_SYSTEM_ZSTD=ON
 -DARMIPS_USE_STD_FILESYSTEM=ON"
hostmakedepends="pkg-config python3 $(vopt_if qt qt5-host-tools)"
makedepends="zlib-devel glew-devel ffmpeg-devel libzip-devel
 snappy-devel rapidjson libpng-devel libzstd-devel
 $(vopt_if sdl2 'SDL2_ttf-devel SDL2-devel') wayland-devel
 $(vopt_if qt 'qt5-devel qt5-multimedia-devel')"
depends="desktop-file-utils"
short_desc="Fast and portable PSP emulator"
maintainer="John <me@johnnynator.dev>"
license="GPL-2.0-or-later"
homepage="https://www.ppsspp.org/"
distfiles="https://github.com/hrydgard/ppsspp/releases/download/v${version}/ppsspp-${version}.tar.xz"
checksum=054401fa7fffbd99b7fd80e98a2951d6f0c3de83cb4b54719899c98bfad99614

# 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";;
	ppc*) broken="No JIT support";;
	*) configure_args+=" -DUNITTEST=OFF";;
esac

build_options="qt sdl2"
build_options_default="sdl2"

post_patch() {
	# disable git versioning
	vsed -e 's|find_package(Git)|# &|' -i git-version.cmake
}

post_configure() {
	cat > "${wrksrc}/build/git-version.cpp" <<-EOF
		const char *PPSSPP_GIT_VERSION = "${version}_${revision}-void";
		#define PPSSPP_GIT_VERSION_NO_UPDATE 1
	EOF
}

do_install() {
	vinstall icons/icon.svg 644 usr/share/pixmaps ppsspp.svg
	vbin build/PPSSPPHeadless ppsspp-headless
	vmkdir usr/share/ppsspp
	vcopy build/assets usr/share/ppsspp/

	if [ $build_option_sdl2 ]; then
		vbin build/PPSSPPSDL
		vinstall SDL/PPSSPPSDL.desktop 644 usr/share/applications
	elif [ $build_option_qt ] ;then
		vbin build/PPSSPPQt
		vinstall Qt/PPSSPPQt.desktop 644 usr/share/applications
	fi
}
