forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
higan-094.ebuild
155 lines (125 loc) · 3.52 KB
/
higan-094.ebuild
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit eutils gnome2-utils toolchain-funcs qmake-utils games
MY_P=${PN}_v${PV}-source
DESCRIPTION="A Nintendo multi-system emulator formerly known as bsnes"
HOMEPAGE="http://byuu.org/higan/ https://code.google.com/p/higan/"
SRC_URI="http://byuu.org/files/${MY_P}.tar.xz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="ao +alsa openal opengl oss profile_accuracy +profile_balanced profile_performance pulseaudio qt4 +sdl udev xv"
REQUIRED_USE="|| ( ao openal alsa pulseaudio oss )
|| ( xv opengl sdl )
|| ( profile_accuracy profile_balanced profile_performance )"
RDEPEND="
x11-libs/libX11
x11-libs/libXext
ao? ( media-libs/libao )
openal? ( media-libs/openal )
alsa? ( media-libs/alsa-lib )
pulseaudio? ( media-sound/pulseaudio )
xv? ( x11-libs/libXv )
opengl? ( virtual/opengl )
sdl? ( media-libs/libsdl[X,joystick,video] )
udev? ( virtual/udev )
!qt4? ( x11-libs/gtk+:2 )
qt4? ( >=dev-qt/qtgui-4.5:4 )"
DEPEND="${RDEPEND}
virtual/pkgconfig"
S=${WORKDIR}/${MY_P}
disable_module() {
sed -i \
-e "s|$1\b||" \
"${S}"/target-ethos/Makefile || die
}
src_prepare() {
local i
epatch "${FILESDIR}"/${P}-QA.patch
sed -i \
-e "/handle/s#/usr/local/lib#/usr/$(get_libdir)#" \
nall/dl.hpp || die "fixing libdir failed!"
# audio modules
use ao || disable_module audio.ao
use openal || disable_module audio.openal
use pulseaudio || { disable_module audio.pulseaudio
disable_module audio.pulseaudiosimple ;}
use oss || disable_module audio.oss
use alsa || disable_module audio.alsa
# video modules
use opengl || disable_module video.glx
use xv || disable_module video.xv
use sdl || disable_module video.sdl
# input modules
use sdl || disable_module input.sdl
use udev || disable_module input.udev
# regenerate .moc if needed
if use qt4; then
cd phoenix/qt || die
"$(qt4_get_bindir)"/moc -i -I. -o platform.moc platform.moc.hpp || die
fi
for i in profile_accuracy profile_balanced profile_performance ; do
if use ${i} ; then
cp -dRP "${S}" "${S}_${i}" || die
fi
done
}
src_compile() {
local mytoolkit i
if use qt4; then
mytoolkit="qt"
else
mytoolkit="gtk"
fi
for i in profile_accuracy profile_balanced profile_performance ; do
if use ${i} ; then
cd "${S}_${i}" || die
emake \
platform="linux" \
compiler="$(tc-getCXX)" \
profile="${i#profile_}" \
phoenix="${mytoolkit}"
sed \
-e "s:%GAMES_DATADIR%:${GAMES_DATADIR}:" \
< "${FILESDIR}"/${PN}-wrapper \
> out/${PN}-wrapper || die "generating wrapper failed!"
fi
done
}
src_install() {
local i
for i in profile_accuracy profile_balanced profile_performance ; do
if use ${i} ; then
# install higan
newgamesbin "${S}_${i}"/out/${PN} ${PN}-${i#profile_}.bin
newgamesbin "${S}_${i}"/out/${PN}-wrapper ${PN}-${i#profile_}
make_desktop_entry "${PN}-${i#profile_}" "${PN} (${i#profile_})"
fi
done
# copy home directory stuff to a global location
insinto "${GAMES_DATADIR}"/${PN}
doins -r data/cheats.bml profile/*
# install shaders
if use opengl; then
insinto "${GAMES_DATADIR}/${PN}/Video Shaders"
doins -r shaders/*.shader
fi
doicon -s 48 data/${PN}.png
prepgamesdirs
}
pkg_preinst() {
games_pkg_preinst
gnome2_icon_savelist
}
pkg_postinst() {
elog "optional dependencies:"
elog " dev-games/higan-ananke (extra rom load options)"
elog " games-util/higan-purify (Rom purifier)"
games_pkg_postinst
gnome2_icon_cache_update
}
pkg_postrm() {
gnome2_icon_cache_update
}