PKGNAME=sdl3
PKGSEC=x11
# Note: Looks weird, I know - all dependencies/plugins are loaded via dlopen().
PKGDEP="glibc"
BUILDDEP="alsa-lib glibc mesa libdecor libibus liburing libxkbcommon \
          pulseaudio pipewire sndio tslib wayland x11-lib"
BUILDDEP__RETRO="alsa-lib glibc mesa libxkbcommon pulseaudio pipewire sndio \
                 tslib wayland x11-lib"
PKGDES="Simple Directmedia Layer (version 3)"

ABTYPE=cmakeninja
CMAKE_AFTER=(
    '-DSDL_INSTALL_CPACK=OFF'
    '-DSDL_INSTALL_DOCS=OFF'
    '-DSDL_ASSEMBLY=ON'
    '-DSDL_DBUS=ON'
    '-DSDL_LIBURING=ON'
    '-DSDL_DISKAUDIO=ON'
    '-DSDL_DUMMYAUDIO=ON'
    '-DSDL_DUMMYVIDEO=ON'
    '-DSDL_IBUS=ON'
    '-DSDL_OPENGL=ON'
    '-DSDL_OPENGLES=ON'
    '-DSDL_PTHREADS=ON'
    '-DSDL_PTHREADS_SEM=ON'
    '-DSDL_OS=OFF'
    '-DSDL_ALSA=ON'
    '-DSDL_ALSA_SHARED=ON'
    '-DSDL_JACK=ON'
    '-DSDL_JACK_SHARED=ON'
    '-DSDL_PIPEWIRE=ON'
    '-DSDL_PIPEWIRE_SHARED=ON'
    '-DSDL_PULSEAUDIO=ON'
    '-DSDL_SNDIO=ON'
    '-DSDL_SNDIO_SHARED=ON'
    '-DSDL_RPATH=OFF'
    '-DSDL_CLOCK_GETTIME=ON'
    '-DSDL_X11=ON'
    '-DSDL_X11_SHARED=ON'
    '-DSDL_X11_XCURSOR=ON'
    '-DSDL_X11_XDBE=ON'
    '-DSDL_X11_XINPUT=ON'
    '-DSDL_X11_XFIXES=ON'
    '-DSDL_X11_XRANDR=ON'
    '-DSDL_X11_XSCRNSAVER=ON'
    '-DSDL_X11_XSHAPE=ON'
    '-DSDL_X11_XSYNC=ON'
    '-DSDL_WAYLAND=ON'
    '-DSDL_WAYLAND_SHARED=ON'
    '-DSDL_WAYLAND_LIBDECOR=ON'
    '-DSDL_WAYLAND_LIBDECOR_SHARED=ON'
    '-DSDL_RENDER_GPU=ON'
    '-DSDL_VIVANTE=ON'
    '-DSDL_VULKAN=ON'
    '-DSDL_RENDER_VULKAN=ON'
    '-DSDL_KMSDRM=ON'
    '-DSDL_KMSDRM_SHARED=ON'
    '-DSDL_OFFSCREEN=ON'
    '-DSDL_DUMMYCAMERA=ON'
    '-DSDL_HIDAPI=ON'
    '-DSDL_HIDAPI_LIBUSB=ON'
    '-DSDL_HIDAPI_LIBUSB_SHARED=ON'
    '-DSDL_HIDAPI_JOYSTICK=ON'
    '-DSDL_VIRTUAL_JOYSTICK=ON'
    '-DSDL_LIBUDEV=ON'
    '-DSDL_ASAN=OFF'
    '-DSDL_CCACHE=OFF'
    '-DSDL_CLANG_TIDY=OFF'
    '-DSDL_GPU_DXVK=OFF'
    '-DSDL_VENDOR_INFO=AOSC'
    '-DSDL_SHARED=ON'
    '-DSDL_STATIC=OFF'
    '-DSDL_TEST_LIBRARY=OFF'
    '-DSDL_TESTS=OFF'
    '-DSDL_INSTALL_TESTS=OFF'
    '-DSDL_EXAMPLES=OFF'
)
CMAKE_AFTER__AMD64=(
    "${CMAKE_AFTER[@]}"
    '-DSDL_AVX=OFF'
    '-DSDL_AVX2=OFF'
    '-DSDL_AVX512F=OFF'
    '-DSDL_SSE=ON'
    '-DSDL_SSE2=ON'
    '-DSDL_SSE3=OFF'
    '-DSDL_SSE4_1=OFF'
    '-DSDL_SSE4_2=OFF'
    '-DSDL_MMX=OFF'
)
CMAKE_AFTER__ARM64=(
    "${CMAKE_AFTER[@]}"
    '-DSDL_ARMNEON=ON'
    '-DSDL_RPI=ON'
    '-DSDL_ROCKCHIP=ON'
)
CMAKE_AFTER__LOONGARCH64=(
    "${CMAKE_AFTER[@]}"
    '-DSDL_LSX=ON'
    '-DSDL_LASX=OFF'
)
CMAKE_AFTER__LOONGARCH64_NOSIMD=(
    "${CMAKE_AFTER__LOONGARCH64[@]}"
    '-DSDL_LSX=OFF'
)
CMAKE_AFTER__PPC64EL=(
    "${CMAKE_AFTER[@]}"
    '-DSDL_ALTIVEC=ON'
)
CMAKE_AFTER__RETRO=(
    "${CMAKE_AFTER[@]}"
    '-DSDL_IBUS=OFF'
    '-DSDL_JACK=OFF'
    '-DSDL_JACK_SHARED=OFF'
)

# Needed by Afterglow, whereas FAIL_ARCH defaults to mainline-only.
FAIL_ARCH="!(mainline|retro)"
