Initial import
This commit is contained in:
commit
25ff094a25
42
.SRCINFO
Normal file
42
.SRCINFO
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
pkgbase = ppsspp-git
|
||||||
|
pkgdesc = A PSP emulator written in C++
|
||||||
|
pkgver = 1.0.1.r559.403f6ab
|
||||||
|
pkgrel = 1
|
||||||
|
url = http://www.ppsspp.org/
|
||||||
|
arch = i686
|
||||||
|
arch = x86_64
|
||||||
|
license = GPL2
|
||||||
|
makedepends = cmake
|
||||||
|
makedepends = git
|
||||||
|
makedepends = glu
|
||||||
|
makedepends = qt5-tools
|
||||||
|
depends = ffmpeg
|
||||||
|
depends = sdl2
|
||||||
|
source = git+https://github.com/hrydgard/ppsspp.git
|
||||||
|
source = git+https://github.com/hrydgard/ppsspp-lang.git
|
||||||
|
source = ppsspp-native::git+https://github.com/hrydgard/native.git
|
||||||
|
source = ppsspp-armips::git+https://github.com/Kingcom/armips.git
|
||||||
|
source = ppsspp-ffmpeg.patch
|
||||||
|
source = ppsspp-gcc5.1.patch
|
||||||
|
sha256sums = SKIP
|
||||||
|
sha256sums = SKIP
|
||||||
|
sha256sums = SKIP
|
||||||
|
sha256sums = SKIP
|
||||||
|
sha256sums = 00ef3d221b3a7e967fc79eaed20664f52fe7d303597130c46198e60b81023f8a
|
||||||
|
sha256sums = 719f6ae3efa533872f1db5131bc9e7245d7c2e40e776c9869a0820be17f0ac9d
|
||||||
|
|
||||||
|
pkgname = ppsspp-git
|
||||||
|
provides = ppsspp
|
||||||
|
conflicts = ppsspp
|
||||||
|
conflicts = ppsspp-qt
|
||||||
|
conflicts = ppsspp-qt-git
|
||||||
|
|
||||||
|
pkgname = ppsspp-qt-git
|
||||||
|
depends = ffmpeg
|
||||||
|
depends = sdl2
|
||||||
|
depends = qt5-base
|
||||||
|
provides = ppsspp
|
||||||
|
conflicts = ppsspp
|
||||||
|
conflicts = ppsspp-git
|
||||||
|
conflicts = ppsspp-qt
|
||||||
|
|
6
MKPKG
Normal file
6
MKPKG
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
arch=('x86_64')
|
||||||
|
pkgname=('ppsspp-git' 'ppsspp-qt-git')
|
||||||
|
|
||||||
|
check_git $packagedir/ppsspp-git/ppsspp
|
||||||
|
|
||||||
|
# vim: ts=2 sw=2 et:
|
103
PKGBUILD
Normal file
103
PKGBUILD
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
# Maintainer: Maxime Gauduin <alucryd@archlinux.org>
|
||||||
|
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
|
||||||
|
# Contributor: Ben Reedy <thebenj88@gmail.com>
|
||||||
|
# Contributor: Clement Guerin <geecko.dev@free.fr>
|
||||||
|
# Contributor: Thiago Kenji Okada <thiago.mast3r@gmail.com>
|
||||||
|
# Contributor: uberushaximus <uberushaximus@gmail.com>
|
||||||
|
|
||||||
|
pkgbase=ppsspp-git
|
||||||
|
pkgname=('ppsspp-git' 'ppsspp-qt-git')
|
||||||
|
pkgver=1.0.1.r559.403f6ab
|
||||||
|
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'
|
||||||
|
'ppsspp-gcc5.1.patch')
|
||||||
|
sha256sums=('SKIP'
|
||||||
|
'SKIP'
|
||||||
|
'SKIP'
|
||||||
|
'SKIP'
|
||||||
|
'00ef3d221b3a7e967fc79eaed20664f52fe7d303597130c46198e60b81023f8a'
|
||||||
|
'719f6ae3efa533872f1db5131bc9e7245d7c2e40e776c9869a0820be17f0ac9d')
|
||||||
|
|
||||||
|
pkgver() {
|
||||||
|
cd ppsspp
|
||||||
|
|
||||||
|
echo "$(git describe --tags | sed 's/^v//; s/-/.r/; s/-g/./')"
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
patch -Np1 -i ../ppsspp-gcc5.1.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' \
|
||||||
|
-DUSE_SYSTEM_FFMPEG='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=('ppsspp')
|
||||||
|
conflicts=('ppsspp' 'ppsspp-qt' 'ppsspp-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=('ppsspp')
|
||||||
|
conflicts=('ppsspp' 'ppsspp-git' 'ppsspp-qt')
|
||||||
|
|
||||||
|
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:
|
423
ppsspp-ffmpeg.patch
Normal file
423
ppsspp-ffmpeg.patch
Normal file
|
@ -0,0 +1,423 @@
|
||||||
|
From 983ae517e17a635e21a84a8abdff338e1805f33b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Maxime Gauduin <alucryd@gmail.com>
|
||||||
|
Date: Mon, 1 Jun 2015 15:29:54 +0200
|
||||||
|
Subject: [PATCH] Try to dynamically link against system ffmpeg when possible
|
||||||
|
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 192 ++++++++++++++++++++++++--------------------
|
||||||
|
CMakeTests/FindFFMPEG.cmake | 167 ++++++++++++++++++++++++++++++++++++++
|
||||||
|
2 files changed, 271 insertions(+), 88 deletions(-)
|
||||||
|
create mode 100644 CMakeTests/FindFFMPEG.cmake
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index eb66586..00cf33a 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -98,6 +98,7 @@ option(UNITTEST "Set to ON to generate the unittest target" ${UNITTEST})
|
||||||
|
option(SIMULATOR "Set to ON when targeting an x86 simulator of an ARM platform" ${SIMULATOR})
|
||||||
|
# :: Options
|
||||||
|
option(USE_FFMPEG "Build with FFMPEG support" ${USE_FFMPEG})
|
||||||
|
+option(USE_SYSTEM_FFMPEG "Dynamically link against system FFMPEG" ${USE_SYSTEM_FFMPEG})
|
||||||
|
|
||||||
|
if(ANDROID OR BLACKBERRY OR IOS)
|
||||||
|
if (NOT CMAKE_TOOLCHAIN_FILE)
|
||||||
|
@@ -411,96 +412,101 @@ add_library(stb_vorbis STATIC
|
||||||
|
native/ext/stb_vorbis/stb_vorbis.h)
|
||||||
|
include_directories(native/ext/stb_vorbis)
|
||||||
|
|
||||||
|
-if(USE_FFMPEG AND 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)
|
||||||
|
+if(USE_FFMPEG)
|
||||||
|
+ if(USE_SYSTEM_FFMPEG)
|
||||||
|
+ include(FindFFMPEG)
|
||||||
|
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)
|
||||||
|
+ 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})
|
||||||
|
+
|
||||||
|
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)
|
||||||
|
+ set_target_properties(libavformat PROPERTIES IMPORTED_LOCATION ${FFMPEG_BUILDDIR}/libavformat/libavformat.a)
|
||||||
|
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)
|
||||||
|
+ set_target_properties(libavcodec PROPERTIES IMPORTED_LOCATION ${FFMPEG_BUILDDIR}/libavcodec/libavcodec.a)
|
||||||
|
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)
|
||||||
|
+ set_target_properties(libavutil PROPERTIES IMPORTED_LOCATION ${FFMPEG_BUILDDIR}/libavutil/libavutil.a)
|
||||||
|
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)
|
||||||
|
+ set_target_properties(libswresample PROPERTIES IMPORTED_LOCATION ${FFMPEG_BUILDDIR}/libswresample/libswresample.a)
|
||||||
|
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)
|
||||||
|
-endif(USE_FFMPEG AND NOT DEFINED FFMPEG_BUILDDIR)
|
||||||
|
-
|
||||||
|
-if(USE_FFMPEG)
|
||||||
|
- # Using shared libraries
|
||||||
|
- if(DEFINED FFMPEG_BUILDDIR)
|
||||||
|
- include_directories(ffmpeg ${FFMPEG_BUILDDIR})
|
||||||
|
-
|
||||||
|
- 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()
|
||||||
|
+ 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)
|
||||||
|
@@ -514,15 +520,25 @@ if(USE_FFMPEG)
|
||||||
|
endif()
|
||||||
|
endif(APPLE)
|
||||||
|
|
||||||
|
- set(LinkCommon ${LinkCommon} ${FFMPEG_LIBRARIES})
|
||||||
|
+ if(FFMPEG_FOUND)
|
||||||
|
+ set(nativeExtraLibs ${nativeExtraLibs} ${FFMPEG_LIBRARIES})
|
||||||
|
+ else()
|
||||||
|
+ set(LinkCommon ${LinkCommon} ${FFMPEG_LIBRARIES})
|
||||||
|
+ endif()
|
||||||
|
+ 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)
|
||||||
|
- target_link_libraries(Common ${FFMPEG_LIBRARIES})
|
||||||
|
message(STATUS "FFMPEG library locations:")
|
||||||
|
- if(DEFINED PLATFORM_ARCH)
|
||||||
|
+ 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")
|
||||||
|
@@ -540,7 +556,7 @@ if(USE_FFMPEG AND DEFINED FFMPEG_LIBRARIES)
|
||||||
|
message(STATUS "libswresample location: ${TEMP}")
|
||||||
|
get_target_property(TEMP libswscale IMPORTED_LOCATION)
|
||||||
|
message(STATUS "libswscale location: ${TEMP}")
|
||||||
|
- endif(DEFINED PLATFORM_ARCH)
|
||||||
|
+ endif()
|
||||||
|
else()
|
||||||
|
message(STATUS "ERROR: No FFMPEG library locations")
|
||||||
|
endif()
|
||||||
|
diff --git a/CMakeTests/FindFFMPEG.cmake b/CMakeTests/FindFFMPEG.cmake
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..8fac08f
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/CMakeTests/FindFFMPEG.cmake
|
||||||
|
@@ -0,0 +1,167 @@
|
||||||
|
+# FindFFMPEG
|
||||||
|
+# ----------
|
||||||
|
+#
|
||||||
|
+# Find the native FFMPEG includes and libraries
|
||||||
|
+#
|
||||||
|
+# This module defines:
|
||||||
|
+#
|
||||||
|
+# FFMPEG_INCLUDE_DIR, where to find avformat.h, avcodec.h...
|
||||||
|
+# FFMPEG_LIBRARIES, the libraries to link against to use FFMPEG.
|
||||||
|
+# FFMPEG_FOUND, If false, do not try to use FFMPEG.
|
||||||
|
+#
|
||||||
|
+# also defined, but not for general use are:
|
||||||
|
+#
|
||||||
|
+# FFMPEG_avformat_LIBRARY, where to find the FFMPEG avformat library.
|
||||||
|
+# FFMPEG_avcodec_LIBRARY, where to find the FFMPEG avcodec library.
|
||||||
|
+#
|
||||||
|
+# This is useful to do it this way so that we can always add more libraries
|
||||||
|
+# if needed to ``FFMPEG_LIBRARIES`` if ffmpeg ever changes...
|
||||||
|
+
|
||||||
|
+#=============================================================================
|
||||||
|
+# Copyright: 1993-2008 Ken Martin, Will Schroeder, Bill Lorensen
|
||||||
|
+#
|
||||||
|
+# Distributed under the OSI-approved BSD License (the "License");
|
||||||
|
+# see accompanying file Copyright.txt for details.
|
||||||
|
+#
|
||||||
|
+# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
+# See the License for more information.
|
||||||
|
+#=============================================================================
|
||||||
|
+# (To distribute this file outside of ppsspp, substitute the full
|
||||||
|
+# License text for the above reference.)
|
||||||
|
+
|
||||||
|
+find_path(FFMPEG_INCLUDE_DIR1 avformat.h
|
||||||
|
+ $ENV{FFMPEG_DIR}
|
||||||
|
+ $ENV{FFMPEG_DIR}/ffmpeg
|
||||||
|
+ $ENV{FFMPEG_DIR}/libavformat
|
||||||
|
+ $ENV{FFMPEG_DIR}/include/libavformat
|
||||||
|
+ $ENV{FFMPEG_DIR}/include/ffmpeg
|
||||||
|
+ /usr/local/include/ffmpeg
|
||||||
|
+ /usr/include/ffmpeg
|
||||||
|
+ /usr/include/libavformat
|
||||||
|
+ /usr/include/ffmpeg/libavformat
|
||||||
|
+ /usr/local/include/libavformat
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
+find_path(FFMPEG_INCLUDE_DIR2 avcodec.h
|
||||||
|
+ $ENV{FFMPEG_DIR}
|
||||||
|
+ $ENV{FFMPEG_DIR}/ffmpeg
|
||||||
|
+ $ENV{FFMPEG_DIR}/libavcodec
|
||||||
|
+ $ENV{FFMPEG_DIR}/include/libavcodec
|
||||||
|
+ $ENV{FFMPEG_DIR}/include/ffmpeg
|
||||||
|
+ /usr/local/include/ffmpeg
|
||||||
|
+ /usr/include/ffmpeg
|
||||||
|
+ /usr/include/libavcodec
|
||||||
|
+ /usr/include/ffmpeg/libavcodec
|
||||||
|
+ /usr/local/include/libavcodec
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
+find_path(FFMPEG_INCLUDE_DIR3 avutil.h
|
||||||
|
+ $ENV{FFMPEG_DIR}
|
||||||
|
+ $ENV{FFMPEG_DIR}/ffmpeg
|
||||||
|
+ $ENV{FFMPEG_DIR}/libavutil
|
||||||
|
+ $ENV{FFMPEG_DIR}/include/libavutil
|
||||||
|
+ $ENV{FFMPEG_DIR}/include/ffmpeg
|
||||||
|
+ /usr/local/include/ffmpeg
|
||||||
|
+ /usr/include/ffmpeg
|
||||||
|
+ /usr/include/libavutil
|
||||||
|
+ /usr/include/ffmpeg/libavutil
|
||||||
|
+ /usr/local/include/libavutil
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
+find_path(FFMPEG_INCLUDE_DIR4 swresample.h
|
||||||
|
+ $ENV{FFMPEG_DIR}
|
||||||
|
+ $ENV{FFMPEG_DIR}/ffmpeg
|
||||||
|
+ $ENV{FFMPEG_DIR}/libswresample
|
||||||
|
+ $ENV{FFMPEG_DIR}/include/libswresample
|
||||||
|
+ $ENV{FFMPEG_DIR}/include/ffmpeg
|
||||||
|
+ /usr/local/include/ffmpeg
|
||||||
|
+ /usr/include/ffmpeg
|
||||||
|
+ /usr/include/libswresample
|
||||||
|
+ /usr/include/ffmpeg/libswresample
|
||||||
|
+ /usr/local/include/libswresample
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
+find_path(FFMPEG_INCLUDE_DIR5 swscale.h
|
||||||
|
+ $ENV{FFMPEG_DIR}
|
||||||
|
+ $ENV{FFMPEG_DIR}/ffmpeg
|
||||||
|
+ $ENV{FFMPEG_DIR}/libswscale
|
||||||
|
+ $ENV{FFMPEG_DIR}/include/libswscale
|
||||||
|
+ $ENV{FFMPEG_DIR}/include/ffmpeg
|
||||||
|
+ /usr/local/include/ffmpeg
|
||||||
|
+ /usr/include/ffmpeg
|
||||||
|
+ /usr/include/libswscale
|
||||||
|
+ /usr/include/ffmpeg/libswscale
|
||||||
|
+ /usr/local/include/libswscale
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
+if(FFMPEG_INCLUDE_DIR1 AND
|
||||||
|
+ FFMPEG_INCLUDE_DIR2 AND
|
||||||
|
+ FFMPEG_INCLUDE_DIR3 AND
|
||||||
|
+ FFMPEG_INCLUDE_DIR4 AND
|
||||||
|
+ FFMPEG_INCLUDE_DIR5
|
||||||
|
+)
|
||||||
|
+ set(FFMPEG_INCLUDE_DIR ${FFMPEG_INCLUDE_DIR1}
|
||||||
|
+ ${FFMPEG_INCLUDE_DIR2}
|
||||||
|
+ ${FFMPEG_INCLUDE_DIR3}
|
||||||
|
+ ${FFMPEG_INCLUDE_DIR4}
|
||||||
|
+ ${FFMPEG_INCLUDE_DIR5}
|
||||||
|
+ )
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
+find_library(FFMPEG_avformat_LIBRARY avformat
|
||||||
|
+ $ENV{FFMPEG_DIR}
|
||||||
|
+ $ENV{FFMPEG_DIR}/lib
|
||||||
|
+ $ENV{FFMPEG_DIR}/libavformat
|
||||||
|
+ /usr/local/lib
|
||||||
|
+ /usr/lib
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
+find_library(FFMPEG_avcodec_LIBRARY avcodec
|
||||||
|
+ $ENV{FFMPEG_DIR}
|
||||||
|
+ $ENV{FFMPEG_DIR}/lib
|
||||||
|
+ $ENV{FFMPEG_DIR}/libavcodec
|
||||||
|
+ /usr/local/lib
|
||||||
|
+ /usr/lib
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
+find_library(FFMPEG_avutil_LIBRARY avutil
|
||||||
|
+ $ENV{FFMPEG_DIR}
|
||||||
|
+ $ENV{FFMPEG_DIR}/lib
|
||||||
|
+ $ENV{FFMPEG_DIR}/libavutil
|
||||||
|
+ /usr/local/lib
|
||||||
|
+ /usr/lib
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
+find_library(FFMPEG_swresample_LIBRARY swresample
|
||||||
|
+ $ENV{FFMPEG_DIR}
|
||||||
|
+ $ENV{FFMPEG_DIR}/lib
|
||||||
|
+ $ENV{FFMPEG_DIR}/libswresample
|
||||||
|
+ /usr/local/lib
|
||||||
|
+ /usr/lib
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
+find_library(FFMPEG_swscale_LIBRARY swscale
|
||||||
|
+ $ENV{FFMPEG_DIR}
|
||||||
|
+ $ENV{FFMPEG_DIR}/lib
|
||||||
|
+ $ENV{FFMPEG_DIR}/libswscale
|
||||||
|
+ /usr/local/lib
|
||||||
|
+ /usr/lib
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
+if(FFMPEG_INCLUDE_DIR)
|
||||||
|
+ if(FFMPEG_avformat_LIBRARY AND
|
||||||
|
+ FFMPEG_avcodec_LIBRARY AND
|
||||||
|
+ FFMPEG_avutil_LIBRARY AND
|
||||||
|
+ FFMPEG_swresample_LIBRARY AND
|
||||||
|
+ FFMPEG_swscale_LIBRARY
|
||||||
|
+ )
|
||||||
|
+ set(FFMPEG_FOUND "YES")
|
||||||
|
+ set(FFMPEG_LIBRARIES ${FFMPEG_avformat_LIBRARY}
|
||||||
|
+ ${FFMPEG_avcodec_LIBRARY}
|
||||||
|
+ ${FFMPEG_avutil_LIBRARY}
|
||||||
|
+ ${FFMPEG_swresample_LIBRARY}
|
||||||
|
+ ${FFMPEG_swscale_LIBRARY}
|
||||||
|
+ )
|
||||||
|
+ endif()
|
||||||
|
+endif()
|
||||||
|
--
|
||||||
|
2.4.2
|
||||||
|
|
40
ppsspp-gcc5.1.patch
Normal file
40
ppsspp-gcc5.1.patch
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
diff -rupN ppsspp.orig/ext/xbrz/xbrz.cpp ppsspp/ext/xbrz/xbrz.cpp
|
||||||
|
--- ppsspp.orig/ext/xbrz/xbrz.cpp 2015-06-01 14:16:20.005738417 +0200
|
||||||
|
+++ ppsspp/ext/xbrz/xbrz.cpp 2015-06-01 14:21:30.365765974 +0200
|
||||||
|
@@ -648,23 +648,21 @@ void scalePixel(const Kernel_3x3& ker,
|
||||||
|
auto eq = [&](uint32_t pix1, uint32_t pix2) { return ColorDistance::dist(pix1, pix2, cfg.luminanceWeight_) < cfg.equalColorTolerance_; };
|
||||||
|
auto dist = [&](uint32_t pix1, uint32_t pix2) { return ColorDistance::dist(pix1, pix2, cfg.luminanceWeight_); };
|
||||||
|
|
||||||
|
- const bool doLineBlend = [&]() -> bool
|
||||||
|
- {
|
||||||
|
- if (getBottomR(blend) >= BLEND_DOMINANT)
|
||||||
|
- return true;
|
||||||
|
+ bool doLineBlend;
|
||||||
|
|
||||||
|
- //make sure there is no second blending in an adjacent rotation for this pixel: handles insular pixels, mario eyes
|
||||||
|
- if (getTopR(blend) != BLEND_NONE && !eq(e, g)) //but support double-blending for 90° corners
|
||||||
|
- return false;
|
||||||
|
- if (getBottomL(blend) != BLEND_NONE && !eq(e, c))
|
||||||
|
- return false;
|
||||||
|
+ if (getBottomR(blend) >= BLEND_DOMINANT)
|
||||||
|
+ doLineBlend = true;
|
||||||
|
|
||||||
|
- //no full blending for L-shapes; blend corner only (handles "mario mushroom eyes")
|
||||||
|
- if (!eq(e, i) && eq(g, h) && eq(h , i) && eq(i, f) && eq(f, c))
|
||||||
|
- return false;
|
||||||
|
-
|
||||||
|
- return true;
|
||||||
|
- }();
|
||||||
|
+ //make sure there is no second blending in an adjacent rotation for this pixel: handles insular pixels, mario eyes
|
||||||
|
+ else if (getTopR(blend) != BLEND_NONE && !eq(e, g)) //but support double-blending for 90° corners
|
||||||
|
+ doLineBlend = false;
|
||||||
|
+ else if (getBottomL(blend) != BLEND_NONE && !eq(e, c))
|
||||||
|
+ doLineBlend = false;
|
||||||
|
+ //no full blending for L-shapes; blend corner only (handles "mario mushroom eyes")
|
||||||
|
+ else if (!eq(e, i) && eq(g, h) && eq(h , i) && eq(i, f) && eq(f, c))
|
||||||
|
+ doLineBlend = false;
|
||||||
|
+ else
|
||||||
|
+ doLineBlend = true;
|
||||||
|
|
||||||
|
const uint32_t px = dist(e, f) <= dist(e, h) ? f : h; //choose most similar color
|
||||||
|
|
Loading…
Reference in New Issue
Block a user