games-emulation/ppsspp: add system-ffmpeg USE flag
authorsoredake <fdsfgs@krutt.org>
Fri, 2 Jun 2017 14:08:59 +0000 (17:08 +0300)
committerMichał Górny <mgorny@gentoo.org>
Sun, 18 Jun 2017 07:40:54 +0000 (09:40 +0200)
Closes: https://github.com/gentoo/gentoo/pull/4832

games-emulation/ppsspp/Manifest
games-emulation/ppsspp/metadata.xml
games-emulation/ppsspp/ppsspp-1.4.ebuild
games-emulation/ppsspp/ppsspp-9999.ebuild

index 7e6ecd2e2427d986de4536887db1b68250bc44f4..50368322c2c01337e77ee6710f9c1d2620c4b284 100644 (file)
@@ -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
index ee086732926346bf913c0221e2be666f5213fc0e..83e3a6dff698f4cb7c031cf41daa47cc501870af 100644 (file)
@@ -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>
index 1879b5ea6f33a7ee0e110fa469c37a60d8d9d1d7..f1855879f56ccd0b2ba79ea2a3de9797d643ae74 100644 (file)
@@ -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
+}
index ff8656b6a2db6a708a9c1e580422a6b993b679b4..acd37286ab88307e1e2654de36d5c605c5b9dde8 100644 (file)
@@ -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
+}