summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pcr/ppsspp-git/PKGBUILD96
-rw-r--r--pcr/ppsspp-git/ppsspp-ffmpeg.patch190
2 files changed, 286 insertions, 0 deletions
diff --git a/pcr/ppsspp-git/PKGBUILD b/pcr/ppsspp-git/PKGBUILD
new file mode 100644
index 000000000..388d750c8
--- /dev/null
+++ b/pcr/ppsspp-git/PKGBUILD
@@ -0,0 +1,96 @@
+# Maintainer: Márcio Silva <coadde@parabola.nu>
+
+# Based on ppsspp package
+
+_pkgbase=ppsspp
+pkgbase=ppsspp-git
+pkgname=('ppsspp-git' 'ppsspp-qt-git')
+pkgver=r16696.14fd313
+pkgrel=1
+pkgdesc='A PSP emulator written in C++'
+arch=('i686' 'x86_64')
+url='http://www.ppsspp.org/'
+license=('GPL2')
+depends=('ffmpeg' 'sdl2')
+makedepends=('cmake' 'git' 'glu' 'qt5-tools')
+source=("git+https://github.com/hrydgard/ppsspp.git"
+ 'git+https://github.com/hrydgard/ppsspp-lang.git'
+ 'ppsspp-native::git+https://github.com/hrydgard/native.git'
+ 'ppsspp-armips::git+https://github.com/Kingcom/armips.git'
+ 'ppsspp-ffmpeg.patch')
+sha256sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ '28c4fcfb1a42f17c5a6bd5909696a53481efcd3571b0a30b1e1e535015d6aa1a')
+
+pkgver() {
+ cd ppsspp
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+
+prepare() {
+ cd ppsspp
+
+ for submodule in native lang ext/armips; do
+ git submodule init ${submodule}
+ git config submodule.${submodule}.url ../ppsspp-${submodule#*/}
+ git submodule update ${submodule}
+ done
+
+ patch -Np1 -i ../ppsspp-ffmpeg.patch
+}
+
+build() {
+ cd ppsspp
+
+ if [[ -d build ]]; then
+ rm -rf build
+ fi
+ mkdir build && cd build
+
+ cmake .. \
+ -DCMAKE_BUILD_TYPE='Release' \
+ -DCMAKE_SKIP_RPATH='TRUE'
+ make
+
+ cd ..
+
+ if [[ -d build-qt ]]; then
+ rm -rf build-qt
+ fi
+ mkdir build-qt && cd build-qt
+
+ qmake-qt5 CONFIG+='release' CONFIG+='system_ffmpeg' ../Qt/PPSSPPQt.pro
+ make
+}
+
+package_ppsspp-git() {
+ provides=("${_pkgbase}")
+ conflicts=("${_pkgbase}" "${_pkgbase}-qt" "${_pkgbase}-qt-git")
+
+ cd ppsspp/build
+
+ install -dm 755 "${pkgdir}"/usr/{bin,share/{applications,man/man1,pixmaps,ppsspp}}
+ install -m 755 PPSSPPSDL "${pkgdir}"/usr/bin/ppsspp
+ cp -dr --no-preserve='ownership' assets "${pkgdir}"/usr/share/ppsspp/
+ install -m 644 ../assets/unix-icons/icon-512.svg "${pkgdir}"/usr/share/pixmaps/ppsspp.svg
+ install -m 644 ../debian/ppsspp.desktop "${pkgdir}"/usr/share/applications/
+ install -m 644 ../debian/ppsspp.1 "${pkgdir}"/usr/share/man/man1/
+}
+
+package_ppsspp-qt-git() {
+ depends+=('qt5-base')
+ provides=("${_pkgbase}")
+ conflicts=("${_pkgbase}" "${_pkgbase}-qt" "${_pkgbase}-qt-git")
+
+ cd ppsspp/build-qt
+
+ install -dm 755 "${pkgdir}"/usr/{bin,share/{applications,man/man1,pixmaps}}
+ install -m 755 ppsspp "${pkgdir}"/usr/bin/
+ install -m 644 ../assets/unix-icons/icon-512.svg "${pkgdir}"/usr/share/pixmaps/ppsspp.svg
+ install -m 644 ../debian/ppsspp.desktop "${pkgdir}"/usr/share/applications/
+ install -m 644 ../debian/ppsspp.1 "${pkgdir}"/usr/share/man/man1/
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/pcr/ppsspp-git/ppsspp-ffmpeg.patch b/pcr/ppsspp-git/ppsspp-ffmpeg.patch
new file mode 100644
index 000000000..0e7406080
--- /dev/null
+++ b/pcr/ppsspp-git/ppsspp-ffmpeg.patch
@@ -0,0 +1,190 @@
+diff -Nur a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt 2015-08-16 01:25:43.282403676 -0300
++++ b/CMakeLists.txt 2015-08-16 01:33:33.084570830 -0300
+@@ -419,159 +419,19 @@
+ include_directories(native/ext/stb_vorbis)
+
+ if(USE_FFMPEG)
+- if(USE_SYSTEM_FFMPEG)
+- include(FindFFMPEG)
+- else()
+- set(FFMPEG_FOUND OFF)
+- endif()
+- if(NOT FFMPEG_FOUND)
+- if(NOT DEFINED FFMPEG_BUILDDIR)
+- if(ANDROID)
+- if(ARMV7)
+- set(PLATFORM_ARCH "android/armv7")
+- elseif(ARM)
+- set(PLATFORM_ARCH "android/arm")
+- elseif(X86)
+- set(PLATFORM_ARCH "android/x86")
+- endif()
+- elseif(BLACKBERRY)
+- set(PLATFORM_ARCH "blackberry/armv7")
+- elseif(IOS)
+- set(PLATFORM_ARCH "ios/universal")
+- elseif(MACOSX)
+- set(PLATFORM_ARCH "macosx/x86_64")
+- elseif(LINUX)
+- if(ARMV7)
+- set(PLATFORM_ARCH "linux/armv7")
+- elseif(ARM)
+- set(PLATFORM_ARCH "linux/arm")
+- elseif(MIPS)
+- set(PLATFORM_ARCH "linux/mips32")
+- elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
+- set(PLATFORM_ARCH "linux/x86_64")
+- else()
+- set(PLATFORM_ARCH "linux/x86")
+- endif()
+- endif()
+- # Using static libraries
+- if (DEFINED PLATFORM_ARCH)
+- include_directories(ffmpeg/${PLATFORM_ARCH}/include)
+- link_directories(ffmpeg/${PLATFORM_ARCH}/lib)
+- set(FFMPEG_LIBRARIES libavformat.a libavcodec.a libavutil.a libswresample.a libswscale.a)
+- else()
+- # Manual definition of system library locations by the user.
+- if (DEFINED FFMPEG_INCLUDE_PATH)
+- include_directories(ffmpeg ${FFMPEG_INCLUDE_PATH})
+- endif()
+- if (DEFINED AVFORMAT_PATH)
+- add_library(libavformat STATIC IMPORTED)
+- set_target_properties(libavformat PROPERTIES IMPORTED_LOCATION ${AVFORMAT_PATH})
+- SET (FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} libavformat)
+- endif()
+- if (DEFINED AVCODEC_PATH)
+- add_library(libavcodec STATIC IMPORTED)
+- set_target_properties(libavcodec PROPERTIES IMPORTED_LOCATION ${AVCODEC_PATH})
+- SET (FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} libavcodec)
+- endif()
+- if (DEFINED AVUTIL_PATH)
+- add_library(libavutil STATIC IMPORTED)
+- set_target_properties(libavutil PROPERTIES IMPORTED_LOCATION ${AVUTIL_PATH})
+- SET (FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} libavutil)
+- endif()
+- if (DEFINED SWRESAMPLE_PATH)
+- add_library(libswresample STATIC IMPORTED)
+- set_target_properties(libswresample PROPERTIES IMPORTED_LOCATION ${SWRESAMPLE_PATH})
+- SET (FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} libswresample)
+- endif()
+- if (DEFINED SWSCALE_PATH)
+- add_library(libswscale STATIC IMPORTED)
+- set_target_properties(libswscale PROPERTIES IMPORTED_LOCATION ${SWSCALE_PATH})
+- SET (FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} libswscale)
+- endif()
+- endif(DEFINED PLATFORM_ARCH)
+- else(NOT DEFINED FFMPEG_BUILDDIR)
+- # Using shared libraries
+- include_directories(ffmpeg ${FFMPEG_BUILDDIR})
++ SET (FFMPEG_LIBRARIES
++ avformat
++ avcodec
++ avutil
++ swresample
++ swscale
++ )
+
+- add_library(libavformat STATIC IMPORTED)
+- set_target_properties(libavformat PROPERTIES IMPORTED_LOCATION ${FFMPEG_BUILDDIR}/libavformat/libavformat.a)
+- add_library(libavcodec STATIC IMPORTED)
+- set_target_properties(libavcodec PROPERTIES IMPORTED_LOCATION ${FFMPEG_BUILDDIR}/libavcodec/libavcodec.a)
+- add_library(libavutil STATIC IMPORTED)
+- set_target_properties(libavutil PROPERTIES IMPORTED_LOCATION ${FFMPEG_BUILDDIR}/libavutil/libavutil.a)
+- add_library(libswresample STATIC IMPORTED)
+- set_target_properties(libswresample PROPERTIES IMPORTED_LOCATION ${FFMPEG_BUILDDIR}/libswresample/libswresample.a)
+- add_library(libswscale STATIC IMPORTED)
+- set_target_properties(libswscale PROPERTIES IMPORTED_LOCATION ${FFMPEG_BUILDDIR}/libswscale/libswscale.a)
+-
+- SET (FFMPEG_LIBRARIES
+- libavformat
+- libavcodec
+- libavutil
+- libswresample
+- libswscale
+- )
+- endif(NOT DEFINED FFMPEG_BUILDDIR)
+- endif(NOT FFMPEG_FOUND)
+-
+- find_library(ICONV_LIBRARY NAMES iconv)
+- if (ICONV_LIBRARY)
+- set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} ${ICONV_LIBRARY})
+- endif()
+-
+- if(APPLE)
+- set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} bz2 "-framework CoreVideo")
+- if (NOT IOS)
+- set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} "-framework VideoDecodeAcceleration")
+- endif()
+- endif(APPLE)
+-
+- if(FFMPEG_FOUND)
+- set(nativeExtraLibs ${nativeExtraLibs} ${FFMPEG_LIBRARIES})
+- else()
+- set(LinkCommon ${LinkCommon} ${FFMPEG_LIBRARIES})
+- endif()
++ set(nativeExtraLibs ${nativeExtraLibs} ${FFMPEG_LIBRARIES})
+ target_link_libraries(Common ${FFMPEG_LIBRARIES})
+ add_definitions(-DUSE_FFMPEG)
+ endif(USE_FFMPEG)
+
+-# Modification to show where we are pulling the ffmpeg libraries from.
+-if(USE_FFMPEG AND DEFINED FFMPEG_LIBRARIES)
+- message(STATUS "FFMPEG library locations:")
+- if(FFMPEG_FOUND)
+- message(STATUS "libavcodec location: ${FFMPEG_avcodec_LIBRARY}")
+- message(STATUS "libavformat location: ${FFMPEG_avformat_LIBRARY}")
+- message(STATUS "libavutil location: ${FFMPEG_avutil_LIBRARY}")
+- message(STATUS "libswresample location: ${FFMPEG_swresample_LIBRARY}")
+- message(STATUS "libswscale location: ${FFMPEG_swscale_LIBRARY}")
+- elseif(DEFINED PLATFORM_ARCH)
+- set(TEMP ${CMAKE_SOURCE_DIR}/ffmpeg/${PLATFORM_ARCH}/lib)
+- message(STATUS "libavcodec location: ${TEMP}/libavcodec.a")
+- message(STATUS "libavformat location: ${TEMP}/libavformat.a")
+- message(STATUS "libavutil location: ${TEMP}/libavutil.a")
+- message(STATUS "libswresample location: ${TEMP}/libswresample.a")
+- message(STATUS "libswscale location: ${TEMP}/libswscale.a")
+- else()
+- get_target_property(TEMP libavcodec IMPORTED_LOCATION)
+- message(STATUS "libavcodec location: ${TEMP}")
+- get_target_property(TEMP libavformat IMPORTED_LOCATION)
+- message(STATUS "libavformat location: ${TEMP}")
+- get_target_property(TEMP libavutil IMPORTED_LOCATION)
+- message(STATUS "libavutil location: ${TEMP}")
+- get_target_property(TEMP libswresample IMPORTED_LOCATION)
+- message(STATUS "libswresample location: ${TEMP}")
+- get_target_property(TEMP libswscale IMPORTED_LOCATION)
+- message(STATUS "libswscale location: ${TEMP}")
+- endif()
+-else()
+- message(STATUS "ERROR: No FFMPEG library locations")
+-endif()
+-
+-if(USE_FFMPEG AND NOT DEFINED FFMPEG_LIBRARIES)
+- message(WARNING "FFMPEG_BUILDDIR variable or manual path definition is required to enable FFmpeg. Disabling it.")
+- unset(USE_FFMPEG)
+-endif()
+-
+ find_package(ZLIB)
+ if(ZLIB_FOUND)
+ include_directories(${ZLIB_INCLUDE_DIR})
+diff -Nur a/Core/HW/MediaEngine.h b/Core/HW/MediaEngine.h
+--- a/Core/HW/MediaEngine.h 2015-08-16 01:25:43.332404138 -0300
++++ b/Core/HW/MediaEngine.h 2015-08-16 01:35:59.109776759 -0300
+@@ -34,9 +34,14 @@
+ class SimpleAudio;
+
+ #ifdef USE_FFMPEG
++extern "C" {
++#include <libavformat/avformat.h>
++#include <libavutil/old_pix_fmts.h>
++}
++
+ struct SwsContext;
+ struct AVFrame;
+-struct AVIOContext;
++//struct AVIOContext;
+ struct AVFormatContext;
+ struct AVCodecContext;
+ #endif