summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-emulation/snes9x/snes9x-1.61.ebuild')
-rw-r--r--games-emulation/snes9x/snes9x-1.61.ebuild152
1 files changed, 152 insertions, 0 deletions
diff --git a/games-emulation/snes9x/snes9x-1.61.ebuild b/games-emulation/snes9x/snes9x-1.61.ebuild
new file mode 100644
index 000000000000..0442b30335df
--- /dev/null
+++ b/games-emulation/snes9x/snes9x-1.61.ebuild
@@ -0,0 +1,152 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools meson toolchain-funcs xdg
+
+GLSLANG_COMMIT="bcf6a2430e99e8fc24f9f266e99316905e6d5134"
+SPIRV_COMMIT="1458bae62ec67ea7d12c5a13b740e23ed4bb226c"
+
+DESCRIPTION="Super Nintendo Entertainment System (SNES) emulator"
+HOMEPAGE="https://github.com/snes9xgit/snes9x/"
+SRC_URI="
+ https://github.com/snes9xgit/snes9x/archive/${PV}.tar.gz -> ${P}.tar.gz
+ gui? ( glslang? (
+ https://github.com/KhronosGroup/glslang/archive/${GLSLANG_COMMIT}.tar.gz -> ${P}-glslang.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Cross/archive/${SPIRV_COMMIT}.tar.gz -> ${P}-spirv.tar.gz
+ ) )"
+
+LICENSE="
+ Snes9x GPL-2 GPL-2+ LGPL-2.1 LGPL-2.1+ ISC MIT ZLIB
+ gui? ( glslang? ( Apache-2.0 BSD ) )"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+IUSE="alsa debug glslang gui libretro netplay opengl oss png portaudio pulseaudio wayland xinerama +xv"
+RESTRICT="bindist test" # has no tests but can lead to bug #737044
+
+RDEPEND="
+ sys-libs/zlib:=[minizip]
+ x11-libs/libX11
+ x11-libs/libXext
+ alsa? ( media-libs/alsa-lib )
+ gui? (
+ dev-cpp/cairomm:0
+ dev-cpp/glibmm:2
+ dev-cpp/gtkmm:3.0[wayland?]
+ dev-libs/glib:2
+ dev-libs/libsigc++:2
+ media-libs/libsdl2[joystick]
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[wayland?]
+ x11-libs/libXrandr
+ x11-misc/xdg-utils
+ opengl? ( media-libs/libepoxy )
+ portaudio? ( media-libs/portaudio )
+ pulseaudio? ( media-sound/pulseaudio )
+ wayland? ( dev-libs/wayland )
+ )
+ libretro? ( !games-emulation/libretro-snes9x )
+ png? ( media-libs/libpng:= )
+ xinerama? ( x11-libs/libXinerama )
+ xv? ( x11-libs/libXv )"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto
+ opengl? ( media-libs/libglvnd )"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.53-cross-compile.patch
+ "${FILESDIR}"/${PN}-1.59-build-system.patch
+ "${FILESDIR}"/${PN}-1.61-libretro-flags.patch
+)
+
+src_prepare() {
+ if use gui && use glslang; then
+ rmdir shaders/{glslang,SPIRV-Cross} || die
+ mv ../glslang-${GLSLANG_COMMIT} shaders/glslang || die
+ mv ../SPIRV-Cross-${SPIRV_COMMIT} shaders/SPIRV-Cross || die
+ fi
+
+ default
+
+ rm -r unzip || die
+
+ cd unix || die
+ eautoreconf
+}
+
+src_configure() {
+ tc-export CC CXX # for libretro
+
+ local econfargs=(
+ $(use_enable alsa sound-alsa)
+ $(use_enable debug debugger)
+ $(use_enable netplay)
+ $(use_enable png screenshot)
+ $(use_enable xinerama)
+ $(use_enable xv xvideo)
+ --enable-gamepad
+ --enable-gzip
+ --enable-zip
+ --with-system-zip
+ )
+
+ cd unix || die
+ econf "${econfargs[@]}"
+
+ if use gui; then
+ local emesonargs=(
+ $(meson_use alsa)
+ $(meson_use debug debugger)
+ $(meson_use glslang slang) # TODO?: unbundle
+ $(meson_use opengl)
+ $(meson_use oss)
+ $(meson_use png screenshot)
+ $(meson_use portaudio)
+ $(meson_use pulseaudio)
+ $(meson_use wayland)
+ $(meson_use xv)
+ -Dsystem-zip=true
+ -Dzlib=true
+ )
+
+ EMESON_SOURCE=${S}/gtk
+ meson_src_configure
+ fi
+}
+
+src_compile() {
+ if use libretro; then
+ emake -C libretro
+ # rebuild objects given libretro uses different defines (bug #791475)
+ rm *.o || die
+ fi
+
+ emake -C unix
+
+ use gui && meson_src_compile
+}
+
+src_install() {
+ if use libretro; then
+ exeinto /usr/$(get_libdir)/libretro
+ doexe libretro/snes9x_libretro.so
+ fi
+
+ dobin unix/${PN}
+
+ local DOCS=(
+ README.md
+ docs/{changes,control-inputs,controls,snapshots}.txt
+ unix/snes9x.conf.default
+ )
+ einstalldocs
+
+ if use gui; then
+ meson_src_install
+ dodoc gtk/AUTHORS
+ fi
+}