mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 17:09:10 -07:00
games-emulation/ppsspp: bump to 1.17.1
Signed-off-by: Maciej Barć <xgqt@gentoo.org>
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
DIST ppsspp-1.15.4.tar.xz 51947468 BLAKE2B c6a5e621b02556b791ec41389f17dede63811c87ff628b8f1304ac950071b365ecc9be05f4042e4e3b81e77f5a14b6931577f08b0174fec821350a1d7eca4d6a SHA512 9d2c140b0d633e5ca6191aaf276b7e4f6d029f29d1313a45fb78ee3879fec09f57d816604c51474ab6fe9cde713787d5769e87466d3c3015fe6a9b195ff198d2
|
||||
DIST ppsspp-1.16.4.tar.xz 51110488 BLAKE2B 061090bfd646b0839de7aed8e4b249ac86353c8742cd293c8df5ffc0d93a67f960ff4836bc13b534ba34871719cea2dc485b7d14deaa17aa5ff3dd6f8663687e SHA512 6364bb821a456409c9ee20eb589d761aef02d7756063bd5faa035b856ca551db0675a65767a9ad09dc8eba5fda6ede8ea3eb384b6770570bd4925e11b8c05ac5
|
||||
DIST ppsspp-1.16.tar.xz 50656132 BLAKE2B 5149bd859134a76a191e0f144bdcefc4c521276ebb1390fe5e24eeeb1227b77bab0458a760f29aed5ba169d566f12d5226f2b50a19e44172f1ad98c4eb8f400f SHA512 d65a8c9fb5d7ff45a99f5852d1071029bc51c1e8bdb45b3e78d961a46587553db4465bbd97b301db54a94b60772359929524047f08de3067cd3336f5f7717826
|
||||
DIST ppsspp-1.17.1.tar.xz 54663108 BLAKE2B 91c4964c9f334d42e090f59485e2f02ba8edb780903d2fa46e1a9cea77f6cc9e1a0605310d76445738259c0e99d5d1ca0764ef5f5565e781b482d5d5274620e5 SHA512 eaa0046f5d8e529efd8238690fa242638aa88630172abe59c4b7ffb16b1e18eeb38fcaf8e70ef76dbd2304b226d1f33e10cde709abe00fa2a5baff16c1883c31
|
||||
|
||||
176
games-emulation/ppsspp/files/ppsspp-1.17.1-avcodec-18825.patch
Normal file
176
games-emulation/ppsspp/files/ppsspp-1.17.1-avcodec-18825.patch
Normal file
@@ -0,0 +1,176 @@
|
||||
From a8ae43dfd4f06a48a275a684aafee021e591d75e Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Udvare <audvare@gmail.com>
|
||||
Date: Sun, 4 Feb 2024 18:26:06 -0500
|
||||
Subject: [PATCH] ffmpeg: Improved fix for checking if const AVCodec* is
|
||||
necessary
|
||||
|
||||
---
|
||||
CMakeLists.txt | 21 +++++++++++++++++++++
|
||||
Core/AVIDump.cpp | 4 +---
|
||||
Core/FFMPEGCompat.h | 8 ++++++++
|
||||
Core/HLE/sceAtrac.cpp | 5 +----
|
||||
Core/HLE/sceMpeg.cpp | 4 +---
|
||||
Core/HW/MediaEngine.cpp | 4 +---
|
||||
Core/HW/SimpleAudioDec.cpp | 1 +
|
||||
Core/HW/SimpleAudioDec.h | 7 +++----
|
||||
8 files changed, 37 insertions(+), 17 deletions(-)
|
||||
create mode 100644 Core/FFMPEGCompat.h
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 33570d09c024..f7e5ce1d337c 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -953,6 +953,23 @@ if(USE_FFMPEG)
|
||||
endif()
|
||||
|
||||
find_package(FFmpeg REQUIRED avcodec avformat avutil swresample swscale)
|
||||
+ # Check if we need to use avcodec_(alloc|free)_frame instead of av_frame_(alloc|free)
|
||||
+ # Check if we need to use const AVCodec
|
||||
+ set(CMAKE_REQUIRED_LIBRARIES avcodec;avformat)
|
||||
+ set(CMAKE_REQUIRED_FLAGS "-pedantic -Wall -Werror -Wno-unused-variable")
|
||||
+ check_cxx_source_compiles("extern \"C\" {
|
||||
+ #include <libavcodec/avcodec.h>
|
||||
+ #include <libavformat/avformat.h>
|
||||
+ }
|
||||
+ static AVCodecContext *s_codec_context = NULL;
|
||||
+ int main() {
|
||||
+ const AVCodec *codec = avcodec_find_encoder(s_codec_context->codec_id);
|
||||
+ return 0;
|
||||
+ }
|
||||
+ " HAVE_LIBAVCODEC_CONST_AVCODEC FAIL_REGEX "invalid conversion")
|
||||
+
|
||||
+ # Check if we need to use avcodec_alloc_context3 instead of stream->codec
|
||||
+ # Check if we need to use av_frame_get_buffer instead of avcodec_default_get_buffer
|
||||
endif(USE_FFMPEG)
|
||||
|
||||
find_package(ZLIB)
|
||||
@@ -2024,6 +2041,7 @@ add_library(${CoreLibName} ${CoreLinkType}
|
||||
Core/ELF/PrxDecrypter.h
|
||||
Core/ELF/ParamSFO.cpp
|
||||
Core/ELF/ParamSFO.h
|
||||
+ Core/FFMPEGCompat.h
|
||||
Core/FileSystems/tlzrc.cpp
|
||||
Core/FileSystems/BlobFileSystem.cpp
|
||||
Core/FileSystems/BlobFileSystem.h
|
||||
@@ -2358,6 +2376,9 @@ target_compile_features(${CoreLibName} PUBLIC cxx_std_17)
|
||||
|
||||
if(FFmpeg_FOUND)
|
||||
target_compile_definitions(${CoreLibName} PRIVATE USE_FFMPEG=1)
|
||||
+ if (HAVE_LIBAVCODEC_CONST_AVCODEC)
|
||||
+ target_compile_definitions(${CoreLibName} PRIVATE HAVE_LIBAVCODEC_CONST_AVCODEC=1)
|
||||
+ endif()
|
||||
set_target_properties(${CoreLibName} PROPERTIES NO_SYSTEM_FROM_IMPORTED true)
|
||||
target_include_directories(${CoreLibName} BEFORE PUBLIC ${FFmpeg_INCLUDE_avcodec})
|
||||
target_link_libraries(${CoreLibName}
|
||||
diff --git a/Core/AVIDump.cpp b/Core/AVIDump.cpp
|
||||
index 7c9576d2922b..aa811650314d 100644
|
||||
--- a/Core/AVIDump.cpp
|
||||
+++ b/Core/AVIDump.cpp
|
||||
@@ -45,9 +45,7 @@ extern "C" {
|
||||
#define av_frame_free avcodec_free_frame
|
||||
#endif
|
||||
|
||||
-#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100)
|
||||
-#define AVCodec const AVCodec
|
||||
-#endif
|
||||
+#include "FFMPEGCompat.h"
|
||||
|
||||
static AVFormatContext *s_format_context = nullptr;
|
||||
static AVCodecContext *s_codec_context = nullptr;
|
||||
diff --git a/Core/FFMPEGCompat.h b/Core/FFMPEGCompat.h
|
||||
new file mode 100644
|
||||
index 000000000000..fed3b1c85392
|
||||
--- /dev/null
|
||||
+++ b/Core/FFMPEGCompat.h
|
||||
@@ -0,0 +1,8 @@
|
||||
+#ifndef FFMPEG_COMPAT_H
|
||||
+#define FFMPEG_COMPAT_H
|
||||
+
|
||||
+#ifdef HAVE_LIBAVCODEC_CONST_AVCODEC
|
||||
+#define AVCodec const AVCodec
|
||||
+#endif
|
||||
+
|
||||
+#endif // FFMPEG_COMPAT_H
|
||||
diff --git a/Core/HLE/sceAtrac.cpp b/Core/HLE/sceAtrac.cpp
|
||||
index fe0e8a54de6b..f83d9ffdf166 100644
|
||||
--- a/Core/HLE/sceAtrac.cpp
|
||||
+++ b/Core/HLE/sceAtrac.cpp
|
||||
@@ -129,10 +129,7 @@ extern "C" {
|
||||
#include "libavcodec/avcodec.h"
|
||||
#include "libavutil/version.h"
|
||||
}
|
||||
-
|
||||
-#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100)
|
||||
-#define AVCodec const AVCodec
|
||||
-#endif
|
||||
+#include "Core/FFMPEGCompat.h"
|
||||
|
||||
#endif // USE_FFMPEG
|
||||
|
||||
diff --git a/Core/HLE/sceMpeg.cpp b/Core/HLE/sceMpeg.cpp
|
||||
index d050d62f3d73..8be78c73e0f8 100644
|
||||
--- a/Core/HLE/sceMpeg.cpp
|
||||
+++ b/Core/HLE/sceMpeg.cpp
|
||||
@@ -113,9 +113,7 @@ extern "C" {
|
||||
#include "libswscale/swscale.h"
|
||||
#include "libavcodec/avcodec.h"
|
||||
}
|
||||
-#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100)
|
||||
-#define AVCodec const AVCodec
|
||||
-#endif
|
||||
+#include "Core/FFMPEGCompat.h"
|
||||
static AVPixelFormat pmp_want_pix_fmt;
|
||||
|
||||
#endif
|
||||
diff --git a/Core/HW/MediaEngine.cpp b/Core/HW/MediaEngine.cpp
|
||||
index 0ed957edfd26..7e8b37d4dc9b 100644
|
||||
--- a/Core/HW/MediaEngine.cpp
|
||||
+++ b/Core/HW/MediaEngine.cpp
|
||||
@@ -56,9 +56,7 @@ extern "C" {
|
||||
|
||||
#ifdef USE_FFMPEG
|
||||
|
||||
-#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100)
|
||||
-#define AVCodec const AVCodec
|
||||
-#endif
|
||||
+#include "Core/FFMPEGCompat.h"
|
||||
|
||||
static AVPixelFormat getSwsFormat(int pspFormat)
|
||||
{
|
||||
diff --git a/Core/HW/SimpleAudioDec.cpp b/Core/HW/SimpleAudioDec.cpp
|
||||
index 7994a7f4027a..80397bf6da0a 100644
|
||||
--- a/Core/HW/SimpleAudioDec.cpp
|
||||
+++ b/Core/HW/SimpleAudioDec.cpp
|
||||
@@ -33,6 +33,7 @@ extern "C" {
|
||||
#include "libavutil/samplefmt.h"
|
||||
#include "libavcodec/avcodec.h"
|
||||
}
|
||||
+#include "Core/FFMPEGCompat.h"
|
||||
|
||||
#endif // USE_FFMPEG
|
||||
|
||||
diff --git a/Core/HW/SimpleAudioDec.h b/Core/HW/SimpleAudioDec.h
|
||||
index 52a78bf3b411..9bf2427a4a15 100644
|
||||
--- a/Core/HW/SimpleAudioDec.h
|
||||
+++ b/Core/HW/SimpleAudioDec.h
|
||||
@@ -33,10 +33,6 @@ extern "C" {
|
||||
#include "libavutil/version.h"
|
||||
};
|
||||
|
||||
-#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100)
|
||||
-#define AVCodec const AVCodec
|
||||
-#endif
|
||||
-
|
||||
#endif
|
||||
|
||||
// Wraps FFMPEG for audio decoding in a nice interface.
|
||||
@@ -90,6 +86,9 @@ class SimpleAudio {
|
||||
int wanted_resample_freq; // wanted resampling rate/frequency
|
||||
|
||||
AVFrame *frame_;
|
||||
+#if HAVE_LIBAVCODEC_CONST_AVCODEC // USE_FFMPEG is implied
|
||||
+ const
|
||||
+#endif
|
||||
AVCodec *codec_;
|
||||
AVCodecContext *codecCtx_;
|
||||
SwrContext *swrCtx_;
|
||||
@@ -0,0 +1,33 @@
|
||||
From e1ef901fcc2f0acbdff2671a8e07edab3e473c98 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Udvare <audvare@gmail.com>
|
||||
Date: Sun, 4 Feb 2024 18:39:18 -0500
|
||||
Subject: [PATCH] Add option to disable ccache detection
|
||||
|
||||
---
|
||||
CMakeLists.txt | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index bfd5e690353e..33570d09c024 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -116,7 +116,6 @@ if(NOT IOS)
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/sdl)
|
||||
endif()
|
||||
|
||||
-include(ccache)
|
||||
include(GNUInstallDirs)
|
||||
|
||||
add_definitions(-DASSETS_DIR="${CMAKE_INSTALL_FULL_DATADIR}/ppsspp/assets/")
|
||||
@@ -173,6 +172,11 @@ option(USE_SYSTEM_ZSTD "Dynamically link against system zstd" ${USE_SYSTEM_ZSTD}
|
||||
option(USE_SYSTEM_MINIUPNPC "Dynamically link against system miniUPnPc" ${USE_SYSTEM_MINIUPNPC})
|
||||
option(USE_ASAN "Use address sanitizer" OFF)
|
||||
option(USE_UBSAN "Use undefined behaviour sanitizer" OFF)
|
||||
+option(USE_CCACHE "Use ccache if detected" ON)
|
||||
+
|
||||
+if(USE_CACHE)
|
||||
+ include(ccache)
|
||||
+endif()
|
||||
|
||||
if(UNIX AND NOT (APPLE OR ANDROID) AND VULKAN)
|
||||
if(USING_X11_VULKAN)
|
||||
11
games-emulation/ppsspp/files/ppsspp-1.17.1-cmake-cxx.patch
Normal file
11
games-emulation/ppsspp/files/ppsspp-1.17.1-cmake-cxx.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -3,6 +3,8 @@ cmake_minimum_required(VERSION 3.8)
|
||||
project(PPSSPP)
|
||||
enable_testing()
|
||||
|
||||
+include(CheckCXXSourceCompiles)
|
||||
+
|
||||
#This is supposed to work but doesn't!
|
||||
if(NOT ANDROID)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
84
games-emulation/ppsspp/ppsspp-1.17.1.ebuild
Normal file
84
games-emulation/ppsspp/ppsspp-1.17.1.ebuild
Normal file
@@ -0,0 +1,84 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
inherit python-any-r1 xdg cmake
|
||||
|
||||
DESCRIPTION="A PSP emulator written in C++"
|
||||
HOMEPAGE="https://www.ppsspp.org/
|
||||
https://github.com/hrydgard/ppsspp/"
|
||||
|
||||
if [[ "${PV}" == *9999* ]] ; then
|
||||
inherit git-r3
|
||||
|
||||
EGIT_REPO_URI="https://github.com/hrydgard/${PN}.git"
|
||||
else
|
||||
SRC_URI="https://github.com/hrydgard/${PN}/releases/download/v${PV}/${P}.tar.xz"
|
||||
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
LICENSE="Apache-2.0 BSD BSD-2 GPL-2 JSON MIT"
|
||||
SLOT="0"
|
||||
IUSE="discord qt5 test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
app-arch/snappy:=
|
||||
app-arch/zstd:=
|
||||
dev-libs/libzip:=
|
||||
media-libs/glew:=
|
||||
media-libs/libpng:=
|
||||
media-libs/libsdl2[joystick]
|
||||
media-video/ffmpeg:0/58.60.60
|
||||
sys-libs/zlib:=
|
||||
virtual/opengl
|
||||
qt5? (
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtgui:5[-gles2-only]
|
||||
dev-qt/qtmultimedia:5[-gles2-only]
|
||||
dev-qt/qtopengl:5[-gles2-only]
|
||||
dev-qt/qtwidgets:5[-gles2-only]
|
||||
)
|
||||
!qt5? ( media-libs/libsdl2[X,opengl,sound,video] )
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.17.1-avcodec-18825.patch"
|
||||
"${FILESDIR}/${PN}-1.17.1-ccache-18826.patch"
|
||||
"${FILESDIR}/${PN}-1.17.1-cmake-cxx.patch"
|
||||
"${FILESDIR}/${PN}-CMakeLists-flags.patch"
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local -a mycmakeargs=(
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DCMAKE_SKIP_RPATH=ON
|
||||
-DHEADLESS=false
|
||||
-DUSE_SYSTEM_FFMPEG=ON
|
||||
-DUSE_SYSTEM_LIBZIP=ON
|
||||
-DUSE_SYSTEM_SNAPPY=ON
|
||||
-DUSE_SYSTEM_ZSTD=ON
|
||||
-DUSE_DISCORD=$(usex discord)
|
||||
-DUSING_QT_UI=$(usex qt5)
|
||||
-DUNITTEST=$(usex test)
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cmake_src_test -E glslang-testsuite
|
||||
}
|
||||
Reference in New Issue
Block a user