diff options
Diffstat (limited to 'pcr')
-rw-r--r-- | pcr/ppsspp-git/PKGBUILD | 96 | ||||
-rw-r--r-- | pcr/ppsspp-git/ppsspp-ffmpeg.patch | 190 |
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 |