summaryrefslogtreecommitdiff
path: root/games-emulation/ppsspp/ppsspp-9999.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'games-emulation/ppsspp/ppsspp-9999.ebuild')
-rw-r--r--games-emulation/ppsspp/ppsspp-9999.ebuild81
1 files changed, 81 insertions, 0 deletions
diff --git a/games-emulation/ppsspp/ppsspp-9999.ebuild b/games-emulation/ppsspp/ppsspp-9999.ebuild
new file mode 100644
index 000000000000..5ece82adfcce
--- /dev/null
+++ b/games-emulation/ppsspp/ppsspp-9999.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils cmake-utils git-r3
+
+DESCRIPTION="A PSP emulator written in C++."
+HOMEPAGE="https://www.ppsspp.org/"
+EGIT_REPO_URI="https://github.com/hrydgard/${PN}.git"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+qt5 sdl headless libav +system-ffmpeg"
+REQUIRED_USE="
+ !headless? ( || ( qt5 sdl ) )
+ ?? ( qt5 sdl )
+"
+EGIT_SUBMODULES=( '*' )
+
+RDEPEND="sys-libs/zlib
+ system-ffmpeg? (
+ !libav? ( media-video/ffmpeg:= )
+ libav? ( media-video/libav:= )
+ )
+ sdl? ( media-libs/libsdl2 )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtopengl:5
+ dev-qt/qtwidgets:5
+ )"
+
+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=$(usex system-ffmpeg)
+ -DHEADLESS=$(usex headless)
+ )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ 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
+}
+
+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
+}