Some tweaking and tuning of the ppsspp port. - Remove use of DIST_SUBDIR now that the port uses a single archive instead of pulling a bunch of different pieces together. - Use a system copy of zstd. - Further improvements to the header path handling. Don't do anything port specific and just use the pkg-config file paths.
Looking at upstream I noted a few things. There appears to be RISC-V support. Big endian support seems to be fixed. There was a build issue with Mips that was fixed. and it looks like the FakeJit support was also fixed. So, testing on riscv64 and powerpc/powerpc64 welcome. Index: Makefile =================================================================== RCS file: /home/cvs/ports/emulators/ppsspp/Makefile,v retrieving revision 1.21 diff -u -p -u -p -r1.21 Makefile --- Makefile 18 Jun 2023 21:14:58 -0000 1.21 +++ Makefile 18 Jun 2023 23:54:48 -0000 @@ -1,57 +1,46 @@ -# See https://github.com/hrydgard/ppsspp/issues/8823 -NOT_FOR_ARCHS = ${BE_ARCHS} - -# FakeJit fallback broken in (at least) 1.10.3 -# ppsspp-1.10.3/Core/MIPS/JitCommon/JitCommon.cpp:75:10: error: cannot initialize return object of type 'MIPSComp::JitInterface *' with an rvalue of type 'MIPSComp::FakeJit *' -PPSSPP_JIT_ARCHS = aarch64 amd64 arm i386 -ONLY_FOR_ARCHS = ${PPSSPP_JIT_ARCHS} +COMMENT = Sony PlayStation Portable emulator V = 1.15.4 DISTNAME = ppsspp-$V - -COMMENT = Sony PlayStation Portable emulator - -EXTRACT_SUFX = .tar.xz - -MASTER_SITES = https://github.com/hrydgard/ppsspp/releases/download/v$V/ - +REVISION = 0 CATEGORIES = emulators +MASTER_SITES = https://github.com/hrydgard/ppsspp/releases/download/v$V/ +EXTRACT_SUFX = .tar.xz HOMEPAGE = https://www.ppsspp.org/ # GPLv2+ PERMIT_PACKAGE = Yes -DIST_SUBDIR = ppsspp - -WANTLIB += ${COMPILER_LIBCXX} -WANTLIB += GL GLEW GLU SDL2 avcodec avformat avutil c m png snappy -WANTLIB += swresample swscale z zip +WANTLIB += ${COMPILER_LIBCXX} GL GLEW GLU ICE SDL2 SM X11 Xext +WANTLIB += avcodec avformat avutil c m png snappy swresample swscale +WANTLIB += z zip zstd MODULES = devel/cmake \ lang/python MODPY_RUNDEP = No -LIB_DEPENDS = archivers/snappy \ - archivers/libzip \ +LIB_DEPENDS = archivers/libzip \ + archivers/snappy \ + archivers/zstd \ devel/sdl2 \ graphics/ffmpeg \ graphics/glew \ graphics/png + COMPILER = base-clang ports-gcc CONFIGURE_ARGS = -DUSE_SYSTEM_FFMPEG=ON \ -DUSE_SYSTEM_LIBZIP=ON \ -DUSE_SYSTEM_SNAPPY=ON \ + -DUSE_SYSTEM_ZSTD=ON \ -DUSE_DISCORD=OFF \ -DUSING_EGL=OFF -CXXFLAGS += -I${X11BASE}/include - NO_TEST = Yes pre-configure: - ${SUBST_CMD} ${WRKSRC}/CMakeLists.txt ${WRKSRC}/UI/NativeApp.cpp + ${SUBST_CMD} ${WRKSRC}/UI/NativeApp.cpp do-install: ${INSTALL_PROGRAM} ${WRKBUILD}/PPSSPPSDL ${PREFIX}/bin Index: distinfo =================================================================== RCS file: /home/cvs/ports/emulators/ppsspp/distinfo,v retrieving revision 1.11 diff -u -p -u -p -r1.11 distinfo --- distinfo 18 Jun 2023 21:14:58 -0000 1.11 +++ distinfo 18 Jun 2023 21:46:55 -0000 @@ -1,2 +1,2 @@ -SHA256 (ppsspp/ppsspp-1.15.4.tar.xz) = ogvSe0zagR1s0hgvv80W9wktal0H/LvQDMcjBTC99ow= -SIZE (ppsspp/ppsspp-1.15.4.tar.xz) = 51947468 +SHA256 (ppsspp-1.15.4.tar.xz) = ogvSe0zagR1s0hgvv80W9wktal0H/LvQDMcjBTC99ow= +SIZE (ppsspp-1.15.4.tar.xz) = 51947468 Index: patches/patch-CMakeLists_txt =================================================================== RCS file: /home/cvs/ports/emulators/ppsspp/patches/patch-CMakeLists_txt,v retrieving revision 1.10 diff -u -p -u -p -r1.10 patch-CMakeLists_txt --- patches/patch-CMakeLists_txt 18 Jun 2023 21:14:58 -0000 1.10 +++ patches/patch-CMakeLists_txt 18 Jun 2023 23:55:35 -0000 @@ -8,17 +8,16 @@ Index: CMakeLists.txt --- CMakeLists.txt.orig +++ CMakeLists.txt -@@ -258,6 +258,9 @@ if(MACOSX AND NOT IOS) - endif() - endif() - -+include_directories(${X11BASE}/include) -+include_directories(${LOCALBASE}/lib/libzip/include) -+ - include(FindThreads) - - if(APPLE) -@@ -358,13 +361,13 @@ if(NOT MSVC) +@@ -174,6 +174,8 @@ option(USE_UBSAN "Use undefined behaviour sanitizer" O + if(UNIX AND NOT (APPLE OR ANDROID) AND VULKAN) + if(USING_X11_VULKAN) + message("Using X11 for Vulkan") ++ find_package(X11) ++ include_directories(${X11_Xlib_INCLUDE_PATH}) + add_definitions(-DVK_USE_PLATFORM_XLIB_KHR) + else() + message("NOT using X11 for Vulkan") +@@ -358,13 +360,13 @@ if(NOT MSVC) endif() endif() @@ -36,7 +35,7 @@ Index: CMakeLists.txt set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O2 -g -D_NDEBUG") # Enable checking printf-like format strings (also works for logging functions) -@@ -404,7 +407,7 @@ if(NOT MSVC) +@@ -404,7 +406,7 @@ if(NOT MSVC) add_definitions(-Wno-psabi) endif() add_definitions(-D_XOPEN_SOURCE=700) @@ -45,15 +44,15 @@ Index: CMakeLists.txt add_definitions(-D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64) elseif(ANDROID) add_definitions(-fsigned-char) -@@ -933,6 +936,7 @@ endif() +@@ -932,6 +934,7 @@ endif() + find_package(LIBZIP) if(LIBZIP_FOUND AND USE_SYSTEM_LIBZIP) - add_definitions(-DSHARED_LIBZIP) + include_directories(${LIBZIP_INCLUDE_DIRS}) + add_definitions(-DSHARED_LIBZIP) else() add_library(libzip STATIC - ext/libzip/zip_add.c -@@ -1070,7 +1074,7 @@ else() +@@ -1070,7 +1073,7 @@ else() endif() # Arm platforms require at least libpng17.