# Template file for 'dolphin-emu'
pkgname=dolphin-emu
version=2409
revision=1
_cubeb_commit=54217bca3f3e0cd53c073690a23dd25d83557909
_fmt_commit=e69e5f977d458f2650bb346dadf2ad30c5320281
_googletest_commit=58d77fa8070e8cec2dc1ed015d66b454c8d78850
_implot_commit=cc5e1daa5c7f2335a9460ae79c829011dc5cef2d
_libspng_commit=dc5b1032c08efac68ad30170f7ccbf0aa8dd55c9
_mgba_commit=8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51
_minizip_ng_commit=3eed562ef0ea3516db30d1c8ecb0e1b486d8cb70
_rcheevos_commit=d54cf8f1059cebc90a6f5ecdf03df69259f22054
_sanitizers_cmake_commit=aab6948fa863bc1cbe5d0850bc46b9ef02ed4c1a
_spirv_cross_commit=50b4d5389b6a06f86fb63a2848e1a7da6d9755ca
_tinygltf_commit=c5641f2c22d117da7971504591a8f6a41ece488b
_vma_commit=009ecd192c1289c7529bff248a16cfe896254816
_zlib_ng_commit=ce01b1e41da298334f8214389cc9369540a7560f
archs="x86_64* aarch64* ppc64le* i686"
build_style=cmake
configure_args="-DDISTRIBUTOR=voidlinux.org -DENABLE_ANALYTICS=OFF
 -DENABLE_AUTOUPDATE=OFF -DUSE_DISCORD_PRESENCE=OFF"
hostmakedepends="gettext pkg-config python3 qt6-base qt6-tools"
makedepends="SDL2-devel SFML-devel alsa-lib-devel ffmpeg6-devel glew-devel
 hidapi-devel libbluetooth-devel libcurl-devel libenet-devel libevdev-devel
 libgomp-devel liblz4-devel liblzma-devel libopenal-devel libusb-devel lzo-devel
 mbedtls2-devel miniupnpc-devel portaudio-devel pugixml-devel pulseaudio-devel
 qt6-base-devel qt6-svg-devel soundtouch-devel xxHash-devel zlib-devel"
depends="desktop-file-utils"
short_desc="Gamecube / Wii / Triforce emulator"
maintainer="Henry Naguski <henry@nilsu.org>"
license="GPL-2.0-or-later"
homepage="https://dolphin-emu.org"
distfiles="https://github.com/dolphin-emu/dolphin/archive/${version}.tar.gz
 https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/archive/${_vma_commit}.tar.gz
 https://github.com/KhronosGroup/SPIRV-Cross/archive/${_spirv_cross_commit}.tar.gz
 https://github.com/RetroAchievements/rcheevos/archive/${_rcheevos_commit}.tar.gz
 https://github.com/arsenm/sanitizers-cmake/archive/${_sanitizers_cmake_commit}.tar.gz
 https://github.com/epezent/implot/archive/${_implot_commit}.tar.gz
 https://github.com/fmtlib/fmt/archive/${_fmt_commit}.tar.gz
 https://github.com/google/googletest/archive/${_googletest_commit}.tar.gz
 https://github.com/mgba-emu/mgba/archive/${_mgba_commit}.tar.gz
 https://github.com/mozilla/cubeb/archive/${_cubeb_commit}.tar.gz
 https://github.com/randy408/libspng/archive/${_libspng_commit}.tar.gz
 https://github.com/syoyo/tinygltf/archive/${_tinygltf_commit}.tar.gz
 https://github.com/zlib-ng/minizip-ng/archive/${_minizip_ng_commit}.tar.gz
 https://github.com/zlib-ng/zlib-ng/archive/${_zlib_ng_commit}.tar.gz"
checksum="291723727a3021d381facc47567ad03cad192310c5d59dd37c076ab3e3bd8158
 5ed5125086a92666f1698df907a29f54f11197c382996094b556a1b22186ecaf
 ed27481a78470fe9905cdfec8fd2ebb6c8f68a17377c2879527c2fcb2a01751c
 bf8e6e9afa865c51ab796c8329df206297b329f008ef0c1308c642480fb2d289
 9f5b073625375322236a94ce8d2d803cdedad321c91e63845f487b9ebfb2c433
 af51940ae6482c0e96ffb4309982fa309f9aa383cd8f980081681010c8c3a835
 1723f27eed50e751037f49dcdf73e33b17658f1178ea1c1f829a30bb02335745
 c6ab3b6b33f51ef7465921f8f8c10c15d7cbc510761a15a18ad85babf6d73278
 07e73f02198affccf83cc9740d377b78ba27866b0d654a5e55cafae69d1dfa1c
 a795511bf56183ff7bad8fb2d2836ca5bb158e12ddd519caced62946ffa69c83
 2486cf203f8a201448ebd34949bc7f73038781a9099e205e55f1907fa91931bc
 6352803f1ed18d479ea93abf96ac75c0222a21403be22840bde1072ee5935dfa
 1ef4831d653c78439baa68f6f5d9b9dba54411ad89b1695031c4ecffaf4ff103
 64a6d355d2d5c9449fc047e5bb0ca32875fc385061dfaf1df3aa791577b7ff5e"
skip_extraction="${_cubeb_commit}.tar.gz
 ${_fmt_commit}.tar.gz
 ${_googletest_commit}.tar.gz
 ${_implot_commit}.tar.gz
 ${_libspng_commit}.tar.gz
 ${_mgba_commit}.tar.gz
 ${_minizip_ng_commit}.tar.gz
 ${_rcheevos_commit}.tar.gz
 ${_sanitizers_cmake_commit}.tar.gz
 ${_spirv_cross_commit}.tar.gz
 ${_tinygltf_commit}.tar.gz
 ${_vma_commit}.tar.gz
 ${_zlib_ng_commit}.tar.gz"

case "$XBPS_TARGET_MACHINE" in
	i686*) CFLAGS=-msse2 ;;
esac

case "$XBPS_TARGET_MACHINE" in
	x86_64*|aarch64*) ;;
	*) configure_args+=" -DENABLE_GENERIC=ON" ;;
esac

post_extract() {
	vsrcextract -C Externals/VulkanMemoryAllocator ${_vma_commit}.tar.gz
	vsrcextract -C Externals/cubeb/cubeb ${_cubeb_commit}.tar.gz
	vsrcextract -C Externals/cubeb/cubeb/cmake/sanitizers-cmake ${_sanitizers_cmake_commit}.tar.gz
	vsrcextract -C Externals/fmt/fmt ${_fmt_commit}.tar.gz
	vsrcextract -C Externals/gtest ${_googletest_commit}.tar.gz
	vsrcextract -C Externals/implot/implot ${_implot_commit}.tar.gz
	vsrcextract -C Externals/libspng/libspng ${_libspng_commit}.tar.gz
	vsrcextract -C Externals/mGBA/mgba ${_mgba_commit}.tar.gz
	vsrcextract -C Externals/minizip-ng/minizip-ng ${_minizip_ng_commit}.tar.gz
	vsrcextract -C Externals/rcheevos/rcheevos ${_rcheevos_commit}.tar.gz
	vsrcextract -C Externals/spirv_cross/SPIRV-Cross ${_spirv_cross_commit}.tar.gz
	vsrcextract -C Externals/tinygltf/tinygltf ${_tinygltf_commit}.tar.gz
	vsrcextract -C Externals/zlib-ng/zlib-ng ${_zlib_ng_commit}.tar.gz
	cp -r Externals/gtest/* Externals/cubeb/cubeb/googletest
}

post_install() {
	vinstall Data/51-usb-device.rules 644 usr/lib/udev/rules.d
}
