commit:     83bb5089128de61c84b619dc6cd433b38a61e9a0
Author:     soredake <fdsfgs <AT> krutt <DOT> org>
AuthorDate: Fri Jun  2 14:08:59 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jun 18 07:40:54 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=83bb5089

games-emulation/ppsspp: add system-ffmpeg USE flag

Closes: https://github.com/gentoo/gentoo/pull/4832

 games-emulation/ppsspp/Manifest           |  1 +
 games-emulation/ppsspp/metadata.xml       |  1 +
 games-emulation/ppsspp/ppsspp-1.4.ebuild  | 28 ++++++++++++++++++++++++----
 games-emulation/ppsspp/ppsspp-9999.ebuild | 27 ++++++++++++++++++++++-----
 4 files changed, 48 insertions(+), 9 deletions(-)

diff --git a/games-emulation/ppsspp/Manifest b/games-emulation/ppsspp/Manifest
index 7e6ecd2e242..50368322c2c 100644
--- a/games-emulation/ppsspp/Manifest
+++ b/games-emulation/ppsspp/Manifest
@@ -4,5 +4,6 @@ DIST ppsspp-1.4-ext_SPIRV-Cross.tar.gz 193267 SHA256 
00737747996ebfa09d9d5d66e29
 DIST ppsspp-1.4-ext_armips.tar.gz 163666 SHA256 
a5cc0e9aa3bdf4bb4334def685751f03aaed0aa0d23f317dc2a242bd60be1c64 SHA512 
9423bdbc1428700979c13276a427975733a07908fdf021dc6ab88cec0d37e9523aacd4a2a03eef23638070293dde3f1641647c47095ef2751982b9f9893c1baa
 WHIRLPOOL 
b5f2201e8e3b604282818a946a729f73ed538cd8f98e57c1fffad8ba219569bf47b1f6714c9af9dfd483b1b71eb045533e0be58a664a8a934ab0b4651fbbcbf6
 DIST ppsspp-1.4-ext_armips_ext_tinyformat.tar.gz 22284 SHA256 
9db9bc16e9fafede493b5890b935a57ee6e5e284a9d6e8fa6d9329790a96b8c6 SHA512 
fb063ea9b632c8a9a0203c181830cb2feed9142fcf4d69c11cc0a3e8dcbb3cea51dde6bb351df567b3f105a4da99fd2e72ba3572d3fc0e9a45364f4115d6c3d1
 WHIRLPOOL 
18135420bab7b06a10941ca5039b67899f90e7d2a175eae9ebadf579c1838cb60744d08fd40bb3fe859d108b7af8a17335ce77979ff9e083cc341dd629d7682e
 DIST ppsspp-1.4-ext_glslang.tar.gz 1685246 SHA256 
c7e41726e2d9d6c47e7e2654d4354b1a61527e86158c9ad5e8a9e8f9d7f6a788 SHA512 
3605fb8a3c5dafcab97578030be4af3703f1475c8e9fd58412a514dcaa0ea6c7bf3a279510759496ab34b979a3d260d3da3d6f00d504c9c5e0f9a7b5a61399bc
 WHIRLPOOL 
e78e25b94cb3724e0e013203b27c757896b858779a8f85900dcaa2919482d146f64465166deb25749865d67b66fe2c37876061fd3cc6fcc796d9767ebbb51da3
+DIST ppsspp-1.4-ffmpeg.tar.gz 311610961 SHA256 
b75ccf7f740577c1eb6c66c0551919cea5cd71c56cd100a31ae1524803b40236 SHA512 
d4bdb3c5a13bc64d7b22e38b416355d302a4401a1d8f6bd57a4d8502823dc9a2987df92b8e781ddab6de8ded9b59b268ef1b33f8f43a0be7b1c57d4ffbee6871
 WHIRLPOOL 
656d08ad6c2654498cd662ec6a73fb5e2b559a0c69158d8a42d8cc8ba7b7387d8dd210bf31821870b9fd5171830dd6bbf244e7d3139d6a9c5f8a7083350a2430
 DIST ppsspp-1.4-pspautotests.tar.gz 34389722 SHA256 
e25ec80dcb50c7a7816afecda5cbe9c15c5fc23dbbc063d697378dcb4134c845 SHA512 
70b0c4ee9775ee8179d7993b0162a8fb95aa6b0bf1c2cc49e6e6ec03be6d72c615a8a233235028ce29e715e0ba64f9d60efcb2fadd1b9e6d92a9f435e0c86bbf
 WHIRLPOOL 
b108707bf73b4e82808b10cad98992a5026c1c5013908c71bb19c58883cec131f643c333f0b93d29d97157921f842f3be863100032748e021024c0e50791df41
 DIST ppsspp-1.4.tar.gz 18909397 SHA256 
d801fbdc0063cd351392af488a65fc66021f45eb1edbabe7bce069ce0d68d5a6 SHA512 
986bb4cf9756dba3874838bed9cf5721a2025c19d5c7c936aa8f7dca7848102a10dc924f1900b0ab90a5742ef2b96e3895f085f4ffb471648fb15135c1947580
 WHIRLPOOL 
a02c594378ca01199423596440bdd052c2a75ea61036895c214dd73dad5ffeb95e5f44546939c9a3a812e1cb208ef9ef6e84164f8177f87e02900ca8f7122edc

diff --git a/games-emulation/ppsspp/metadata.xml 
b/games-emulation/ppsspp/metadata.xml
index ee086732926..83e3a6dff69 100644
--- a/games-emulation/ppsspp/metadata.xml
+++ b/games-emulation/ppsspp/metadata.xml
@@ -15,6 +15,7 @@
        </maintainer>
        <use>
                <flag name="headless">Build headless version of the 
PPSSPP</flag>
+               <flag name="system-ffmpeg">Use the system-wide 
media-video/ffmpeg instead of bundled</flag>
        </use>
        <upstream>
                <bugs-to>https://github.com/hrydgard/ppsspp/issues</bugs-to>

diff --git a/games-emulation/ppsspp/ppsspp-1.4.ebuild 
b/games-emulation/ppsspp/ppsspp-1.4.ebuild
index 1879b5ea6f3..f1855879f56 100644
--- a/games-emulation/ppsspp/ppsspp-1.4.ebuild
+++ b/games-emulation/ppsspp/ppsspp-1.4.ebuild
@@ -9,6 +9,7 @@ DESCRIPTION="A PSP emulator written in C++."
 HOMEPAGE="https://www.ppsspp.org/";
 SRC_URI="
        https://github.com/hrydgard/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+       !system-ffmpeg? ( 
https://github.com/hrydgard/ppsspp-ffmpeg/archive/a2e98d7ba4c7c5cac08608732c3058cb46e3e0ef.tar.gz
 -> ${P}-ffmpeg.tar.gz )
        
https://github.com/hrydgard/ppsspp-lang/archive/ed0bbfb389da213bd891d179d1d92e95b8f05e43.tar.gz
 -> ${P}-assets_lang.tar.gz
        
https://github.com/hrydgard/pspautotests/archive/905c3018d01af9dfb511c87e65e07a49257a33ac.tar.gz
 -> ${P}-pspautotests.tar.gz
        
https://github.com/hrydgard/minidx9/archive/7751cf73f5c06f1be21f5f31c3e2d9a7bacd3a93.tar.gz
 -> ${P}-dx9sdk.tar.gz
@@ -21,15 +22,17 @@ SRC_URI="
 LICENSE="GPL-2"
 SLOT="0"
 KEYWORDS="~amd64 ~x86"
-IUSE="+qt5 sdl headless libav"
+IUSE="+qt5 sdl headless libav +system-ffmpeg"
 REQUIRED_USE="
        !headless? ( || ( qt5 sdl ) )
        ?? ( qt5 sdl )
 "
 
 RDEPEND="sys-libs/zlib
-       !libav? ( media-video/ffmpeg:= )
-       libav? ( media-video/libav:= )
+       system-ffmpeg? (
+               !libav? ( media-video/ffmpeg:= )
+               libav? ( media-video/libav:= )
+       )
        sdl? (
                media-libs/libsdl
                media-libs/libsdl2
@@ -58,15 +61,25 @@ src_unpack() {
        unpack "${P}.tar.gz"
        cd "${S}" || die
        local i list=( assets_lang pspautotests dx9sdk ext_glslang ext_armips 
ext_SPIRV-Cross ext_armips_ext_tinyformat )
+       if ! use system-ffmpeg; then
+               list+=( ffmpeg )
+       fi
        for i in "${list[@]}"; do
                tar xf "${DISTDIR}/${P}-${i}.tar.gz" --strip-components 1 -C 
"${i//_//}" || die "Failed to unpack ${P}-${i}.tar.gz"
        done
 }
 
+src_prepare() {
+       if ! use system-ffmpeg; then
+               sed -i -e "s#-O3#-O2#g;" "${S}"/ffmpeg/linux_*.sh || die
+       fi
+       cmake-utils_src_prepare
+}
+
 src_configure() {
        local mycmakeargs=(
                -DUSING_QT_UI=$(usex qt5)
-               -DUSE_SYSTEM_FFMPEG=ON
+               -DUSE_SYSTEM_FFMPEG=$(usex system-ffmpeg)
                -DHEADLESS=$(usex headless)
                )
        cmake-utils_src_configure
@@ -85,3 +98,10 @@ src_install() {
                make_desktop_entry "PPSSPP$(usex qt5 Qt SDL)" "PPSSPP ($(usex 
qt5 Qt SDL))" "${PN}" "Game"
        fi
 }
+
+pkg_postinst() {
+       if use system-ffmpeg; then
+               ewarn "system-ffmpeg USE flag is enabled, some bugs might arise 
due to it."
+               ewarn "See https://github.com/hrydgard/ppsspp/issues/9026 for 
more informations."
+       fi
+}

diff --git a/games-emulation/ppsspp/ppsspp-9999.ebuild 
b/games-emulation/ppsspp/ppsspp-9999.ebuild
index ff8656b6a2d..acd37286ab8 100644
--- a/games-emulation/ppsspp/ppsspp-9999.ebuild
+++ b/games-emulation/ppsspp/ppsspp-9999.ebuild
@@ -11,16 +11,18 @@ EGIT_REPO_URI="https://github.com/hrydgard/${PN}.git";
 
 LICENSE="GPL-2"
 SLOT="0"
-IUSE="+qt5 sdl headless libav"
+IUSE="+qt5 sdl headless libav +system-ffmpeg"
 REQUIRED_USE="
        !headless? ( || ( qt5 sdl ) )
        ?? ( qt5 sdl )
 "
-EGIT_SUBMODULES=( '*' '-ffmpeg' )
+EGIT_SUBMODULES=( '*' )
 
 RDEPEND="sys-libs/zlib
-       !libav? ( media-video/ffmpeg:= )
-       libav? ( media-video/libav:= )
+       system-ffmpeg? (
+               !libav? ( media-video/ffmpeg:= )
+               libav? ( media-video/libav:= )
+       )
        sdl? (
                media-libs/libsdl
                media-libs/libsdl2
@@ -40,19 +42,27 @@ RDEPEND="sys-libs/zlib
 
 DEPEND="${RDEPEND}"
 
+src_unpack() {
+       use system-ffmpeg && EGIT_SUBMODULES+=( '-ffmpeg' )
+       git-r3_src_unpack
+}
+
 src_prepare() {
        # 
https://github.com/hrydgard/ppsspp/blob/150619c5a341f372266bec86fd874ac5a1343a43/UI/NativeApp.cpp#L318
        # patch ppsspp to use /usr/share instead of working dir to find the 
assets
        sed -i 's|VFSRegister("", new AssetsAssetReader());|VFSRegister("", new 
DirectoryAssetReader("/usr/share/ppsspp/assets/"));|g' UI/NativeApp.cpp || die 
"Patching qt assets path failed"
 
        sed -i -e "s#-O3#-O2#g;" "${S}"/CMakeLists.txt || die
+       if ! use system-ffmpeg; then
+               sed -i -e "s#-O3#-O2#g;" "${S}"/ffmpeg/linux_*.sh || die
+       fi
        cmake-utils_src_prepare
 }
 
 src_configure() {
        local mycmakeargs=(
                -DUSING_QT_UI=$(usex qt5)
-               -DUSE_SYSTEM_FFMPEG=ON
+               -DUSE_SYSTEM_FFMPEG=$(usex system-ffmpeg)
                -DHEADLESS=$(usex headless)
                )
        cmake-utils_src_configure
@@ -71,3 +81,10 @@ src_install() {
                make_desktop_entry "PPSSPP$(usex qt5 Qt SDL)" "PPSSPP ($(usex 
qt5 Qt SDL))" "${PN}" "Game"
        fi
 }
+
+pkg_postinst() {
+       if use system-ffmpeg; then
+               ewarn "system-ffmpeg USE flag is enabled, some bugs might arise 
due to it."
+               ewarn "See https://github.com/hrydgard/ppsspp/issues/9026 for 
more informations."
+       fi
+}

Reply via email to