void-packages/srcpkgs/retroarch/template
amak 3d34061538 retroarch: disable gles2 by default, add libusb and xdg-utils deps
When both gles2 and opengl options are enabled, RetroArch will only
build with OpenGL ES support. This prevents OpenGL only cores from working.
Disable gles2 by default and use the glcore driver which provides OpenGL 3.2+
and OpenGL ES 3+ support. Fixes: #32246

libusb support is automatic and is currently pulled in when sdl2 is enabled.
Add it to makedepends to ensure it's always enabled.

RetroArch will call xdg-screensaver when it's built with X11 support.
Add xdg-utils to depends when the x11 option is enabled.
2021-08-08 23:14:46 -03:00

114 lines
3.8 KiB
Bash

# Template file for 'retroarch'
pkgname=retroarch
version=1.9.7
revision=2
wrksrc="RetroArch-$version"
build_style=configure
configure_args="--prefix=/usr --sysconfdir=/etc --enable-networking
--enable-udev --disable-builtinflac --disable-builtinglslang
--disable-builtinmbedtls --disable-builtinminiupnpc --disable-builtinzlib
$(vopt_enable ffmpeg) $(vopt_enable flac) $(vopt_enable glslang) $(vopt_enable jack)
$(vopt_enable miniupnpc) $(vopt_enable pulseaudio pulse) $(vopt_enable qt5 qt)
$(vopt_enable sdl2) $(vopt_enable vulkan) $(vopt_enable wayland) $(vopt_enable x11)"
conf_files="/etc/retroarch.cfg"
hostmakedepends="pkg-config"
makedepends="alsa-lib-devel eudev-libudev-devel freetype-devel libusb-devel libxkbcommon-devel
mbedtls-devel zlib-devel $(vopt_if ffmpeg ffmpeg-devel) $(vopt_if flac libflac-devel)
$(vopt_if glslang 'glslang-devel SPIRV-Tools-devel') $(vopt_if jack jack-devel)
$(vopt_if miniupnpc miniupnpc-devel) $(vopt_if pulseaudio pulseaudio-devel)
$(vopt_if qt5 qt5-devel) $(vopt_if sdl2 SDL2-devel) $(vopt_if vulkan vulkan-loader)
$(vopt_if x11 'libXext-devel libXinerama-devel libXv-devel libXxf86vm-devel')"
depends="$(vopt_if vulkan vulkan-loader) $(vopt_if x11 xdg-utils)"
short_desc="Official reference frontend for the libretro API"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="https://www.retroarch.com/"
changelog="https://raw.githubusercontent.com/libretro/RetroArch/master/CHANGES.md"
distfiles="https://github.com/libretro/RetroArch/archive/v$version.tar.gz"
checksum=a4a1791dbff796dccfb377f9a61bd4b1bea4f754ab6611f51fa1d0466babbc9e
build_options="ffmpeg flac glcore gles2 glslang jack miniupnpc neon pulseaudio qt5 sdl2 vulkan wayland x11"
build_options_default="ffmpeg flac glcore glslang miniupnpc pulseaudio sdl2 vulkan wayland x11"
desc_option_glcore="Enable support for OpenGL 3.2 core+ and OpenGL ES 3+"
desc_option_glslang="Enable support for GLSL shaders"
desc_option_miniupnpc="Enable support for NAT traversal"
desc_option_neon="Enable support for ARM Neon SIMD extension"
vopt_conflict glcore gles2 # gles2 disables glcore support
if [ "$build_option_gles2" ]; then
configure_args+=" --enable-opengles --enable-opengles3"
else
configure_args+=" --disable-opengles --disable-opengles3"
fi
if [ "$build_option_glcore" ]; then
if [ -z "$build_option_glslang" ]; then
msg_error "$pkgname: 'glcore' option requires 'glslang'.\n"
fi
configure_args+=" --enable-opengl_core"
else
configure_args+=" --disable-opengl_core"
fi
if [ "$build_option_gles2" -o "$build_option_glcore" ]; then
configure_args+=" --enable-egl --enable-kms"
makedepends+=" MesaLib-devel"
fi
if [ "$build_option_qt5" ]; then
if [ "$CROSS_BUILD" ]; then
hostmakedepends+=" qt5-host-tools"
fi
fi
if [ "$build_option_vulkan" ]; then
if [ -z "$build_option_glslang" ]; then
msg_error "$pkgname: 'vulkan' option requires 'glslang'.\n"
fi
fi
if [ "$build_option_wayland" ]; then
if [ -z "$build_option_gles2" -a -z "$build_option_glcore" ]; then
msg_error "$pkgname: 'wayland' option requires 'gles2' or 'glcore'.\n"
fi
makedepends+=" wayland-devel wayland-protocols"
if [ "$CROSS_BUILD" ]; then
hostmakedepends+=" wayland-devel wayland-protocols"
fi
fi
if [ "$build_option_x11" ]; then
if [ -z "$build_option_gles2" -a -z "$build_option_glcore" ]; then
msg_error "$pkgname: 'x11' option requires 'gles2' or 'glcore'.\n"
fi
fi
case "$XBPS_TARGET_MACHINE" in
i686*|x86_64*)
configure_args+=" --enable-sse --enable-threads"
;;
ppc*)
configure_args+=" --enable-threads"
;;
aarch64*)
configure_args+=" --enable-threads"
;;
armv7*)
build_options_default+=" neon"
configure_args+=" --enable-threads $(vopt_enable neon)"
if [ "$build_option_neon" ]; then
CFLAGS+=" -mfpu=neon"
fi
;;
arm*)
configure_args+=" --disable-neon"
;;
esac
if [ "$CROSS_BUILD" ]; then
configure_args+=" --host=${XBPS_CROSS_TRIPLET}"
fi