diff options
Diffstat (limited to 'games-emulation/snes9x/snes9x-1.61.ebuild')
-rw-r--r-- | games-emulation/snes9x/snes9x-1.61.ebuild | 152 |
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 +} |