blob: 14b09f9d75452f078f38233abc454e1a82c7dd49 (
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
|
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools flag-o-matic meson xdg
DESCRIPTION="Super Nintendo Entertainment System (SNES) emulator"
HOMEPAGE="https://github.com/snes9xgit/snes9x"
SRC_URI="https://github.com/snes9xgit/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Snes9x GPL-2 GPL-2+ LGPL-2.1 LGPL-2.1+ ISC MIT ZLIB Info-ZIP"
SLOT="0"
KEYWORDS="~amd64 ~ppc64 ~x86"
IUSE="alsa debug gtk libretro multilib netplay opengl oss png pulseaudio portaudio wayland xinerama +xv"
RESTRICT="bindist"
RDEPEND="
gtk? (
dev-libs/glib:2
media-libs/libsdl2[joystick]
>=x11-libs/gtk+-3.22:3[wayland?]
x11-libs/libXrandr
x11-misc/xdg-utils
alsa? ( media-libs/alsa-lib )
opengl? (
media-libs/libepoxy
virtual/opengl
)
portaudio? ( >=media-libs/portaudio-19_pre )
pulseaudio? ( media-sound/pulseaudio )
xv? ( x11-libs/libXv )
wayland? ( dev-libs/wayland )
)
!gtk? ( x11-libs/libXv )
libretro? ( !!games-emulation/libretro-snes9x )
png? ( media-libs/libpng:0= )
sys-libs/zlib:=[minizip]
xinerama? ( x11-libs/libXinerama )
x11-libs/cairo
x11-libs/gdk-pixbuf
x11-libs/libX11
x11-libs/libXext"
DEPEND="${RDEPEND}
x11-base/xorg-proto"
BDEPEND="virtual/pkgconfig"
S="${WORKDIR}/${P}/unix"
PATCHES=(
"${FILESDIR}"/${PN}-1.53-cross-compile.patch
"${FILESDIR}"/${PN}-1.59-build-system.patch
)
src_prepare() {
cd "${WORKDIR}/${P}" || die
rm -r unzip || die
default
cd unix || die
eautoreconf
if use gtk ; then
export EMESON_SOURCE="${WORKDIR}/${P}/gtk"
fi
}
src_configure() {
append-ldflags -Wl,-z,noexecstack
# build breaks when zlib/zip support is disabled
local myeconfargs=(
--enable-gamepad
--enable-gzip
--enable-zip
--with-system-zip
$(use_enable debug debugger)
$(use_enable netplay)
$(use_enable png screenshot)
$(use_enable xinerama)
)
econf "${myeconfargs[@]}"
if use gtk; then
local emesonargs=(
-Dalsa="$(usex alsa true false)"
-Ddebugger="$(usex debug true false)"
-Dgtk2=false
-Dgtk3=true
-Dopengl="$(usex opengl true false)"
-Doss="$(usex oss true false)"
-Dportaudio="$(usex portaudio true false)"
-Dpulseaudio="$(usex pulseaudio true false)"
-Dscreenshot="$(usex png true false)"
-Dsystem-zip=true
-Dxv="$(usex xv true false)"
-Dzlib=true
-Dwayland="$(usex wayland true false)"
)
meson_src_configure
fi
}
src_compile() {
use libretro && emake -C ../libretro
emake
use gtk && meson_src_compile
}
src_install() {
dobin ${PN}
dodoc ../docs/{changes,control-inputs,controls,snapshots}.txt
dodoc snes9x.conf.default
if use libretro ; then
cd "${WORKDIR}/${PF}/libretro/"
dolib.so snes9x_libretro.so
fi
if use gtk ; then
meson_src_install
dodoc ../gtk/AUTHORS
fi
HTML_DOCS="${WORKDIR}/${PF}/docs/*.html"
einstalldocs
}
pkg_preinst() {
use gtk && xdg_pkg_preinst
}
pkg_postinst() {
use gtk && xdg_pkg_postinst
}
pkg_postrm() {
use gtk && xdg_pkg_postrm
}
|