John 59fd9d1fc2 ppsspp: update to 1.18.1., revert to ffmpeg4
the discussion about ffmpeg6 can be had once we actually drop ffmpeg4

ffmpeg6 breaks video playback twofold:
a) messed up video (can be fixed by using private API to set AVSTREAM_PARSE_FULL)
b) ppsspp hangs at the end of a video
2024-12-27 10:50:21 +01:00

114 lines
4.6 KiB
Bash

# 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.18.1
revision=1
_glslang_commit=b34f619e1c85810dcb3c578107d2e48ba4ee2b37
_SPIRV_Cross_commit=4212eef67ed0ca048cb726a6767185504e7695e5
_armips_commit=a8d71f0f279eb0d30ecf6af51473b66ae0cf8e8d
_discord_rpc_commit=963aa9f3e5ce81a4682c6ca3d136cddda614db33
_miniupnp_commit=27d13ca9beeb5541f5fbf11959dced03dac39972
_cpu_features_commit=fd4ffc1632db7b4e763bd28ffa6fc9d761cf3587
_rcheevos_commit=32917bdddf4982e62047862c6633e7671aaaf2cb
_libchdr_commit=26d27ca4903aaccd3ef41337b29bf5ecafb1f0ca
_OpenXR_SDK_commit=be392bf6949adeeabad5082aa79d12aacbda781f
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/archive/v${version}.tar.gz
https://github.com/hrydgard/glslang/archive/${_glslang_commit}.tar.gz
https://github.com/KhronosGroup/SPIRV-Cross/archive/${_SPIRV_Cross_commit}.tar.gz
https://github.com/Kingcom/armips/archive/${_armips_commit}.tar.gz
https://github.com/discordapp/discord-rpc/archive/${_discord_rpc_commit}.tar.gz
https://github.com/hrydgard/miniupnp/archive/${_miniupnp_commit}.tar.gz
https://github.com/google/cpu_features/archive/${_cpu_features_commit}.tar.gz
https://github.com/RetroAchievements/rcheevos/archive/${_rcheevos_commit}.tar.gz
https://github.com/rtissera/libchdr/archive/${_libchdr_commit}.tar.gz
https://github.com/KhronosGroup/OpenXR-SDK/archive/${_OpenXR_SDK_commit}.tar.gz"
checksum="cc9425202552cbce8bc7ee5b883670703761011ab5c987c426887f7c2ef2703f
9be7a69f5e5e2b9db55feb6d36d4b78bfe7a0cfb02e5915ff9bad87d719b38f8
a7adf77b5680795302aee160309c6cb81b0da341d92bd7face01f9a156b65aeb
a520df5b673fc1649661f8506ddf35f62fb55e05d9f5a6c44b4d807b6aab3fbd
8f4115999391f95f443615fc5b13cb2398926ac4c418d3d34ff5735f71c6faea
a07a32b2db1f6c5f2823847d47ba6e326b08fbcfe78690801fda9c3aeddf25a3
60b2e0e7adfbf40f0c69fb77ad197440a8435532285a83b19f99b4f886cca67a
22a43d8c283d96d08bb1c5d121660d3db051946025ff92eff8ee6b8c7eb18f0f
006f323b6330c98883db887cbb7d2d13379498f34d5a2ee98850a1ff21a93d8a
f91007ec5cd5380184678cb282353a6b97b6ba2278ef4911e217472186a31762"
skip_extraction="
${_armips_commit}.tar.gz
${_glslang_commit}.tar.gz
${_SPIRV_Cross_commit}.tar.gz
${_discord_rpc_commit}.tar.gz
${_miniupnp_commit}.tar.gz
${_cpu_features_commit}.tar.gz
${_rcheevos_commit}.tar.gz
${_libchdr_commit}.tar.gz
${_OpenXR_SDK_commit}.tar.gz
"
# 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_extract() {
vsrcextract -C ext/armips ${_armips_commit}.tar.gz
vsrcextract -C ext/glslang ${_glslang_commit}.tar.gz
vsrcextract -C ext/SPIRV-Cross ${_SPIRV_Cross_commit}.tar.gz
vsrcextract -C ext/discord-rpc ${_discord_rpc_commit}.tar.gz
vsrcextract -C ext/miniupnp ${_miniupnp_commit}.tar.gz
vsrcextract -C ext/cpu_features ${_cpu_features_commit}.tar.gz
vsrcextract -C ext/rcheevos ${_rcheevos_commit}.tar.gz
vsrcextract -C ext/libchdr ${_libchdr_commit}.tar.gz
vsrcextract -C ext/OpenXR-SDK ${_OpenXR_SDK_commit}.tar.gz
}
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
}