diff options
author | Ionen Wolkens <ionen@gentoo.org> | 2022-03-05 01:30:23 -0500 |
---|---|---|
committer | Ionen Wolkens <ionen@gentoo.org> | 2022-03-05 01:57:07 -0500 |
commit | 068201997e59cd47afce4fda21b12cd0841532ed (patch) | |
tree | 3ca070f1754ac83228ea3d908b205a64186c859c /games-emulation/snes9x/snes9x-1.61.ebuild | |
parent | sci-mathematics/alectryon: new package; add 1.4.0 (diff) | |
download | gentoo-068201997e59cd47afce4fda21b12cd0841532ed.tar.gz gentoo-068201997e59cd47afce4fda21b12cd0841532ed.tar.bz2 gentoo-068201997e59cd47afce4fda21b12cd0841532ed.zip |
games-emulation/snes9x: add 1.61
Various changes, but for some notable ones:
- IUSE=gtk->gui, now uses gtkmm
- RESTRICT=test, has no tests but fails if -gui/-gtk (bug #737044)
- clean libretro objects to fix USE="netplay libretro" (bug #791475)
- respect flags for libretro, also don't use CXXFLAGS for CFLAGS
- install libretro core in libretro/ like libretro-snes9x
- tentatively remove noexecstack, not seeing QA notices
- remove html docs, they are not relevant for users
This bundles glslang/spriv-cross but upstream is concerned about API
and seems likely this will break if unbundled, leaving alone for now.
bug #766782 was caused by CFLAGS = $(CXXFLAGS) without := leading
to -fno-rtti being used for CC and seemingly being refusedby distcc.
1.61 corrected this.
Closes: https://bugs.gentoo.org/737044
Closes: https://bugs.gentoo.org/766782
Closes: https://bugs.gentoo.org/791475
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
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 +} |