aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-emulation/RetroArch/RetroArch-1.19.1.ebuild')
-rw-r--r--games-emulation/RetroArch/RetroArch-1.19.1.ebuild192
1 files changed, 192 insertions, 0 deletions
diff --git a/games-emulation/RetroArch/RetroArch-1.19.1.ebuild b/games-emulation/RetroArch/RetroArch-1.19.1.ebuild
new file mode 100644
index 000000000..b7fa0223c
--- /dev/null
+++ b/games-emulation/RetroArch/RetroArch-1.19.1.ebuild
@@ -0,0 +1,192 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="RetroArch is a frontend for emulators, game engines and media players"
+HOMEPAGE="https://www.retroarch.com"
+
+SRC_URI="https://github.com/libretro/RetroArch/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE="7zip alsa cg cpu_flags_arm_neon cpu_flags_arm_vfp cpu_flags_x86_sse2 cheevos debug dispmanx +egl filters ffmpeg gles2 gles3 hid jack kms libass libusb materialui network openal +opengl osmesa oss +ozone pulseaudio +rgui sdl +truetype +threads udev v4l2 videocore vulkan wayland X xinerama xmb xv zlib"
+
+REQUIRED_USE="
+ || ( opengl sdl vulkan dispmanx )
+ || ( materialui ozone rgui xmb )
+ alsa? ( threads )
+ arm? ( gles2? ( egl ) )
+ !arm? (
+ egl? ( opengl )
+ gles2? ( opengl )
+ )
+ cg? ( opengl )
+ dispmanx? ( videocore arm )
+ gles2? ( !cg )
+ gles3? ( gles2 )
+ kms? ( egl )
+ libass? ( ffmpeg )
+ libusb? ( hid )
+ videocore? ( arm )
+ vulkan? ( amd64 )
+ wayland? ( egl )
+ xinerama? ( X )
+ xv? ( X )
+"
+RDEPEND="
+ app-arch/xz-utils
+ x11-libs/libxkbcommon
+ alsa? ( media-libs/alsa-lib )
+ cg? ( media-gfx/nvidia-cg-toolkit:0= )
+ arm? ( dispmanx? ( || ( media-libs/raspberrypi-userland:0 media-libs/raspberrypi-userland-bin:0 ) ) )
+ ffmpeg? ( >=media-video/ffmpeg-2.1.3:0= )
+ jack? ( virtual/jack:= )
+ libass? ( media-libs/libass:0= )
+ libusb? ( virtual/libusb:1= )
+ openal? ( media-libs/openal:0= )
+ opengl? ( media-libs/libglvnd )
+ osmesa? ( media-libs/mesa:0=[osmesa?] )
+ pulseaudio? ( media-libs/libpulse )
+ sdl? ( media-libs/libsdl2[joystick] )
+ truetype? (
+ media-libs/fontconfig
+ media-libs/freetype:2
+ )
+ udev? ( virtual/udev
+ X? ( x11-drivers/xf86-input-evdev:0= )
+ )
+ amd64? ( vulkan? ( media-libs/vulkan-loader ) )
+ v4l2? ( media-libs/libv4l:0= )
+ wayland? (
+ dev-libs/wayland
+ dev-libs/wayland-protocols
+ )
+ X? (
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXrandr
+ x11-libs/libXxf86vm
+ x11-libs/libxcb:=
+ )
+ xinerama? ( x11-libs/libXinerama:0= )
+ xv? ( x11-libs/libXv )
+ zlib? ( sys-libs/zlib:0= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ wayland? ( dev-util/wayland-scanner )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.16.0.3-int-conversion.patch"
+)
+
+src_configure() {
+ if use cg; then
+ append-ldflags -L"${EPREFIX}/"opt/nvidia-cg-toolkit/$(get_libdir)
+ append-cflags -I"${EPREFIX}/"opt/nvidia-cg-toolkit/include
+ fi
+
+ # Absolute path of the directory containing Retroarch shared libraries.
+ export RETROARCH_LIB_DIR="${EPREFIX}/usr/$(get_libdir)/retroarch"
+
+ if use filters; then
+ # Replace stock defaults with Gentoo-specific defaults.
+ sed -i retroarch.cfg \
+ -e 's:# \(video_filter_dir =\):\1 "/'${RETROARCH_LIB_DIR}'/filters/video/":' \
+ -e 's:# \(audio_filter_dir =\):\1 "/'${RETROARCH_LIB_DIR}'/filters/audio/":' \
+ || die '"sed" failed.'
+ fi
+
+ # Note that OpenVG support is hard-disabled. (See ${RDEPEND} above.)
+ CC="$(tc-getCC)" CXX="$(tc-getCXX)" ./configure \
+ --prefix="${EPREFIX}/usr" \
+ --docdir="${EPREFIX}/usr/share/doc/${PF}" \
+ --enable-dynamic \
+ --disable-builtinzlib \
+ --disable-qt \
+ --disable-sdl \
+ --disable-vg \
+ $(use_enable 7zip) \
+ $(use_enable alsa) \
+ $(use_enable cheevos) \
+ $(use_enable cg) \
+ $(use_enable cpu_flags_arm_neon neon) \
+ $(use_enable cpu_flags_arm_vfp floathard) \
+ $(use_enable cpu_flags_x86_sse2 sse) \
+ $(use_enable dispmanx) \
+ $(use_enable egl) \
+ $(use_enable ffmpeg) \
+ $(use_enable gles2 opengles) \
+ $(use_enable gles3 opengles3) \
+ $(use_enable hid) \
+ $(use_enable jack) \
+ $(use_enable kms) \
+ $(use_enable libass ssa) \
+ $(use_enable libusb) \
+ $(use_enable materialui) \
+ $(use_enable network networking) \
+ $(use_enable openal al) \
+ $(use_enable opengl) \
+ $(use_enable osmesa) \
+ $(use_enable oss) \
+ $(use_enable ozone) \
+ $(use_enable pulseaudio pulse) \
+ $(use_enable rgui) \
+ $(use_enable sdl sdl2) \
+ $(use_enable threads) \
+ $(use_enable truetype freetype) \
+ $(use_enable udev) \
+ $(use_enable v4l2) \
+ $(use_enable videocore) \
+ $(use_enable vulkan) \
+ $(use_enable wayland) \
+ $(use_enable X x11) \
+ $(use_enable xinerama) \
+ $(use_enable xmb) \
+ $(use_enable xv xvideo) \
+ $(use_enable zlib) \
+ || die
+}
+
+src_compile() {
+ emake V=1 $(usex debug "DEBUG=1" "")
+ if use filters; then
+ emake CC="$(tc-getCC)" $(usex debug "build=debug" "build=release") -C gfx/video_filters/
+ emake CC="$(tc-getCC)" $(usex debug "build=debug" "build=release") -C libretro-common/audio/dsp_filters/
+ fi
+}
+
+src_install() {
+ # Install core files and directories.
+ emake DESTDIR="${D}" install
+
+ # Install documentation.
+ dodoc README.md
+
+ if use filters; then
+ # Install video filters.
+ insinto ${RETROARCH_LIB_DIR}/filters/video/
+ doins "${S}"/gfx/video_filters/*.so
+ doins "${S}"/gfx/video_filters/*.filt
+
+ # Install audio filters.
+ insinto ${RETROARCH_LIB_DIR}/filters/audio/
+ doins "${S}"/libretro-common/audio/dsp_filters/*.dsp
+ fi
+}
+
+pkg_postinst() {
+ if use oss; then
+ ewarn ""
+ ewarn "OSS support is enabled, however it is not installed as a dependency."
+ ewarn "Make sure you have OSS installed in your system."
+ ewarn ""
+ fi
+}