# Template file for 'SDL2'
pkgname=SDL2
version=2.32.0
revision=1
build_style=cmake
configure_args="-DSDL_ALSA=ON -DSDL_ESD=OFF -DSDL_RPATH=OFF
 -DSDL_CLOCK_GETTIME=ON -DSDL_PULSEAUDIO_SHARED=OFF
 -DSDL_ALSA_SHARED=OFF -DSDL_DBUS=ON"
hostmakedepends="pkg-config nasm"
makedepends="alsa-lib-devel dbus-devel eudev-libudev-devel libusb-compat-devel
 libsamplerate-devel"
short_desc="Simple DirectMedia Layer (version 2)"
maintainer="André Cerqueira <acerqueira021@gmail.com>"
license="Zlib"
homepage="https://www.libsdl.org/"
changelog="https://raw.githubusercontent.com/libsdl-org/SDL/SDL2/WhatsNew.txt"
distfiles="https://www.libsdl.org/release/SDL2-${version}.tar.gz"
checksum=f5c2b52498785858f3de1e2996eba3c1b805d08fe168a47ea527c7fc339072d0

# Package build options
build_options="gles opengl pulseaudio pipewire sndio vulkan wayland x11"
build_options_default="gles opengl pulseaudio sndio vulkan wayland x11"

case "$XBPS_TARGET_MACHINE" in
	ppcle*) ;;
	*) build_options_default+=" pipewire";;
esac

case "$XBPS_TARGET_MACHINE" in
	# SDL_cpuinfo includes altivec.h, which breaks C++ programs with vector keyword
	ppc*) configure_args+=" -DSDL_ALTIVEC=OFF";;
	# SDL detects SSE3 on i686, which is above our support target
	i686*) configure_args+=" -DSDL_SSE3=OFF";;
	*) ;;
esac

unset depends

if [ "$build_option_gles" ]; then
	configure_args+=" -DSDL_OPENGLES=ON"
	# libGLESv2.so.2 is dynamically loaded with dlopen.
	shlib_requires="libGLESv2.so.2"
	depends+=" virtual?libGLES"
else
	configure_args+=" -DSDL_OPENGLES=OFF"
fi

if [ "$build_option_opengl" ]; then
	# libGL.so.1 is dynamically loaded with dlopen.
	shlib_requires+=" libGL.so.1"
	depends+=" virtual?libGL"
	configure_args+=" -DSDL_OPENGL=ON"
else
	configure_args+=" -DSDL_OPENGL=OFF"
fi

if [ "$build_option_opengl" -o "$build_option_gles" ]; then
	makedepends+=" glu-devel"
fi

if [ "$build_option_pulseaudio" ]; then
	configure_args+=" -DSDL_PULSEAUDIO=ON"
	makedepends+=" pulseaudio-devel"
else
	configure_args+=" -DSDL_PULSEAUDIO=OFF"
fi

if [ "$build_option_pipewire" ]; then
	configure_args+=" -DSDL_PIPEWIRE=ON"
	makedepends+=" pipewire-devel"
else
	configure_args+=" -DSDL_PIPEWIRE=OFF"
fi

if [ "$build_option_sndio" ]; then
	configure_args+=" -DSDL_SNDIO=ON"
	makedepends+=" sndio-devel"
else
	configure_args+=" -DSDL_SNDIO=OFF"
fi

if [ "$build_option_wayland" ]; then
	if [ -z "$build_option_gles" ]; then
		msg_error "$pkgname: wayland option requires gles.\n"
	fi
	configure_args+=" -DSDL_WAYLAND=ON -DSDL_WAYLAND_SHARED=OFF -DSDL_WAYLAND_LIBDECOR=ON"
	makedepends+=" libxkbcommon-devel libdecor-devel wayland-devel wayland-protocols"
	if [ "$CROSS_BUILD" ]; then
		hostmakedepends+=" wayland-devel"
	fi
else
	configure_args+=" -DSDL_WAYLAND=OFF"
fi

if [ "$build_option_x11" ]; then
	configure_args+=" -DSDL_X11=ON -DSDL_X11_SHARED=OFF"
	makedepends+=" libSM-devel libXcursor-devel libXScrnSaver-devel libXrandr-devel"
else
	configure_args+=" -DSDL_X11=OFF"
fi

if [ "$build_option_vulkan" ]; then
	configure_args+=" -DSDL_VULKAN=ON"
	makedepends+=" vulkan-loader-devel"
else
	configure_args+=" -DSDL_VULKAN=OFF"
fi

SDL2-devel_package() {
	short_desc+=" - development files"
	depends="${makedepends} ${sourcepkg}>=${version}_${revision}"
	pkg_install() {
		vmove usr/bin
		vmove usr/include
		vmove usr/lib/cmake
		vmove usr/lib/pkgconfig
		vmove "usr/lib/*.a"
		vmove "usr/lib/*.so"
		vmove usr/share
	}
}
