blob: 09a2aafadb15692a4015dc6854771eefc00bfda9 (
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
133
134
135
136
137
138
139
|
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
MY_COMMIT=41efdba45afa770db99bc7484a8ad340ccc597d2
inherit desktop toolchain-funcs xdg-utils
DESCRIPTION="A multi-system game emulator formerly known as bsnes"
HOMEPAGE="https://byuu.org/emulation/higan/ https://gitlab.com/higan/higan"
SRC_URI="https://gitlab.com/higan/higan/repository/${MY_COMMIT}/archive.tar.bz2 -> ${P}.tar.bz2"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="ao +alsa +icarus openal opengl oss pulseaudio +sdl udev xv"
REQUIRED_USE="|| ( ao openal alsa pulseaudio oss )
|| ( xv opengl sdl )"
RDEPEND="
x11-libs/gtk+:2
x11-libs/libX11
x11-libs/libXext
icarus? (
x11-libs/gtksourceview:2.0
x11-libs/gtk+:2
x11-libs/pango
dev-libs/atk
x11-libs/cairo
x11-libs/gdk-pixbuf
dev-libs/glib:2
media-libs/fontconfig
media-libs/freetype
)
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 )
"
DEPEND="${RDEPEND}
app-arch/p7zip
virtual/pkgconfig
"
S=${WORKDIR}/${PN}-${MY_COMMIT}-${MY_COMMIT}
PATCHES=(
"${FILESDIR}"/${P}-header-locations.patch
"${FILESDIR}"/${P}-QA.patch
)
disable_module() {
sed -i \
-e "s|$1\b||" \
"${S}"/higan/target-tomoko/GNUmakefile || die
}
src_prepare() {
default
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.xvideo
use sdl || disable_module video.sdl
# input modules
use sdl || disable_module input.sdl
use udev || disable_module input.udev
}
src_compile() {
local mytoolkit
mytoolkit="gtk"
# Needed for fluent audio (even on i5 hardware)
export CFLAGS="${CFLAGS} -O3"
export CXXFLAGS="${CXXFLAGS} -O3"
if use icarus; then
cd "${S}/icarus" || die
emake \
platform="linux" \
compiler="$(tc-getCXX)"
fi
cd "${S}/higan" || die
emake \
platform="linux" \
compiler="$(tc-getCXX)" \
hiro="${mytoolkit}"
}
src_install() {
if use icarus; then
newbin "${S}"/icarus/out/icarus icarus
fi
newbin "${S}"/higan/out/${PN} ${PN}.bin
newbin "${FILESDIR}"/${P}-wrapper ${PN}
make_desktop_entry "${PN}" "${PN}"
# copy home directory stuff to a global location (matching "${FILESDIR}"/${P}-wrapper)
insinto /usr/share/${PN}
doins -r higan/systems/*.sys
doicon -s 512 higan/data/${PN}.png
doicon higan/data/${PN}.svg
}
pkg_preinst() {
games_pkg_preinst
}
pkg_postinst() {
#elog "optional dependencies:"
#elog " dev-games/higan-ananke (extra rom load options)"
#elog " games-util/higan-purify (Rom purifier)"
xdg_icon_cache_update
}
pkg_postrm() {
xdg_icon_cache_update
}
|