summaryrefslogtreecommitdiff
blob: 4d8db28fecf2ed6c44190ff2e0bf542e12bb7816 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=5

inherit eutils cmake-utils qt4-r2 git-r3

DESCRIPTION="A PSP emulator written in C++."
HOMEPAGE="http://www.ppsspp.org/"
EGIT_REPO_URI="git://github.com/hrydgard/${PN}.git"
EGIT_COMMIT="v${PV}"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="qt4 qt5 +sdl"
REQUIRED_USE="
	?? ( qt4 qt5 sdl )
"

RDEPEND=""

DEPEND="
	sys-libs/zlib
	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-qt/qtcore:5
		dev-qt/qtopengl:5
		dev-qt/qtmultimedia: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
}

src_prepare() {
	# Bug 574000
	sed -i -e "s#-O3#-O2#g;" "${S}"/CMakeLists.txt || die

	epatch "$FILESDIR"/ppsspp-ffmpeg-x86_64.patch
	epatch "$FILESDIR"/ppsspp-ffmpeg-x86.patch
	epatch "$FILESDIR"/ppsspp-qt.patch

	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
}

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
}

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
	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. "
}