games-emulation/ppsspp: update 9999 version.
authorsoredake <fdsfgs@krutt.org>
Tue, 4 Apr 2017 13:11:03 +0000 (16:11 +0300)
committerPatrice Clement <monsieurp@gentoo.org>
Tue, 4 Apr 2017 21:14:02 +0000 (23:14 +0200)
Closes: https://github.com/gentoo/gentoo/pull/4342

games-emulation/ppsspp/ppsspp-9999.ebuild

index 16ca5dd693f8cbd376eb9a307e1b23f2e6d0c915..ff8656b6a2db6a708a9c1e580422a6b993b679b4 100644 (file)
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=5
+EAPI=6
 
-inherit eutils cmake-utils qt4-r2 git-r3
+inherit eutils cmake-utils git-r3
 
 DESCRIPTION="A PSP emulator written in C++."
-HOMEPAGE="http://www.ppsspp.org/"
-EGIT_REPO_URI="git://github.com/hrydgard/${PN}.git"
+HOMEPAGE="https://www.ppsspp.org/"
+EGIT_REPO_URI="https://github.com/hrydgard/${PN}.git"
 
 LICENSE="GPL-2"
 SLOT="0"
-KEYWORDS=""
-IUSE="qt4 qt5 +sdl"
+IUSE="+qt5 sdl headless libav"
 REQUIRED_USE="
-       ?? ( qt4 qt5 sdl )
+       !headless? ( || ( qt5 sdl ) )
+       ?? ( qt5 sdl )
 "
+EGIT_SUBMODULES=( '*' '-ffmpeg' )
 
-RDEPEND=""
-
-DEPEND="
-       sys-libs/zlib
+RDEPEND="sys-libs/zlib
+       !libav? ( media-video/ffmpeg:= )
+       libav? ( media-video/libav:= )
        sdl? (
-               dev-util/cmake
                media-libs/libsdl
                media-libs/libsdl2
        )
-       qt4? (
-               dev-qt/qtsvg:4
-               dev-qt/qtgui:4
-               dev-qt/qtcore:4
-               dev-qt/qtopengl:4
-               dev-qt/qtmultimedia:4
-               dev-qt/qt-mobility[multimedia]
-       )
        qt5? (
-               dev-qt/qtsvg:5
-               dev-qt/qtgui:5
+               dev-db/sqlite
+               dev-qt/assistant:5
                dev-qt/qtcore:5
-               dev-qt/qtopengl:5
+               dev-qt/qtdeclarative:5
+               dev-qt/qtgui:5
                dev-qt/qtmultimedia:5
+               dev-qt/qtopengl:5
+               dev-qt/qtsvg:5
+               dev-qt/qtwebkit:5
                dev-qt/qtwidgets:5
-               dev-qt/qt-mobility[multimedia]
-       )
-"
+       )"
 
-src_unpack() {
-       git-r3_fetch
-       git-r3_checkout
-       if use qt4 ; then
-               cd "${WORKDIR}"/"${P}"/Qt || die
-               qt4-r2_src_unpack
-       elif use qt5 ; then
-               cd "${WORKDIR}"/"${P}"/Qt || die
-               qt4-r2_src_unpack
-       fi
-}
+DEPEND="${RDEPEND}"
 
 src_prepare() {
-       sed -i -e "s#-O3#-O2#g;" "${S}"/CMakeLists.txt || die
-       sed -i -e "s#-O3#-O2#g;" "${S}"/Qt/Settings.pri || die
-       sed -i -e "s#-O3#-O2#g;" "${S}"/ffmpeg/linux_*.sh || die
+       # 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"
 
-       if use qt4 ; then
-               cd "${WORKDIR}"/"${P}"/Qt || die
-               qt4-r2_src_prepare
-       elif use qt5 ; then
-               cd "${WORKDIR}"/"${P}"/Qt || die
-               qt4-r2_src_prepare
-       else
-               cmake-utils_src_prepare
-       fi
+       sed -i -e "s#-O3#-O2#g;" "${S}"/CMakeLists.txt || die
+       cmake-utils_src_prepare
 }
 
 src_configure() {
-       if use qt4 ; then
-               cd "${WORKDIR}"/"${P}"/Qt || die
-               qt4-r2_src_configure
-               eqmake4 "${WORKDIR}"/"${P}"/Qt/PPSSPPQt.pro
-       elif use qt5 ; then
-               cd "${WORKDIR}"/"${P}"/Qt || die
-               qt4-r2_src_configure
-               eqmake5 "${WORKDIR}"/"${P}"/Qt/PPSSPPQt.pro
-       else
-               cmake-utils_src_configure
-       fi
-}
-
-src_compile() {
-       if use qt4 ; then
-               cd "${WORKDIR}"/"${P}"/Qt || die
-               qt4-r2_src_compile
-       elif use qt5 ; then
-               cd "${WORKDIR}"/"${P}"/Qt || die
-               qt4-r2_src_compile
-       else
-               cmake-utils_src_compile
-       fi
+       local mycmakeargs=(
+               -DUSING_QT_UI=$(usex qt5)
+               -DUSE_SYSTEM_FFMPEG=ON
+               -DHEADLESS=$(usex headless)
+               )
+       cmake-utils_src_configure
 }
 
 src_install() {
-       if use qt4 ; then
-               exeinto /usr/games/bin
-               newexe "${WORKDIR}"/"${P}"/Qt/ppsspp ppsspp
-       elif use qt5 ; then
-               exeinto /usr/games/bin
-               newexe "${WORKDIR}"/"${P}"/Qt/ppsspp ppsspp
-       else
-               exeinto /usr/games
-               dobin "${FILESDIR}"/ppsspp
-               exeinto /usr/share/games/"${PN}"
-               doexe "${WORKDIR}"/"${P}"_build/PPSSPPSDL
-               insinto /usr/share/games/"${PN}"
-               doins -r "${WORKDIR}"/"${P}"_build/assets
-               doins -r "${WORKDIR}"/"${P}"/lang
+       use headless && dobin "${BUILD_DIR}/PPSSPPHeadless"
+       insinto /usr/share/"${PN}"
+       doins -r "${BUILD_DIR}/assets"
+       if use qt5 || use sdl ; then
+               dobin "${BUILD_DIR}/PPSSPP$(usex qt5 Qt SDL)"
+               local i
+               for i in 16 24 32 48 64 96 128 256 512 ; do
+                       doicon -s ${i} "icons/hicolor/${i}x${i}/apps/${PN}.png"
+               done
+               make_desktop_entry "PPSSPP$(usex qt5 Qt SDL)" "PPSSPP ($(usex qt5 Qt SDL))" "${PN}" "Game"
        fi
-       insinto /usr/share/icons/
-       newins "${WORKDIR}"/"${P}"/source_assets/image/icon_regular_72.png ppsspp-icon.png
-       domenu "${FILESDIR}"/ppsspp.desktop
-}
-
-pkg_postinst() {
-       elog "Remember, in order to play games, you have to "
-       elog "be in the 'games' group. "
-       elog "Just run 'gpasswd -a <USER> games', then have <USER> re-login. "
 }