depends -sub CXX gcc  &&

###### Video drivers ######
optional_depends libx11 \
                "-DSDL_X11=ON" "-DSDL_X11=OFF" \
                "for X11 video output support" &&

if is_depends_enabled $SPELL libx11; then
  depends libxext &&
  optional_depends libxcursor \
                  "-DSDL_X11_XCURSOR=ON" "-DSDL_X11_XCURSOR=OFF" \
                  "for the X11 Xcursor extension" &&
  optional_depends libxi \
                  "-DSDL_X11_XINPUT=ON" "-DSDL_X11_XINPUT=OFF" \
                  "for the X11 XInput extension" &&
  optional_depends libxfixes \
                  "-DSDL_X11_XFIXES=ON" "-DSDL_X11_XFIXES=OFF" \
                  "for the X11 Xfixes extension" &&
  optional_depends libxrandr \
                  "-DSDL_X11_XRANDR=ON" "-DSDL_X11_XRANDR=OFF" \
                  "for the X11 Xrandr extension" &&
  optional_depends libxscrnsaver \
                  "-DSDL_X11_XSCRNSAVER=ON" "-DSDL_X11_XSCRNSAVER=OFF" \
                  "for the X11 screensaver extension" &&
  optional_depends libxtst \
                  "-DSDL_X11_XTEST=ON" "-DSDL_X11_XTEST=OFF" \
                  "for the X11 XTest extension" &&
  optional_depends fribidi \
                  "-DSDL_FRIBIDI=ON" "-DSDL_FRIBIDI=OFF" \
                  "for Fribidi text shaping (X11)" &&
  optional_depends libthai \
                  "-DSDL_LIBTHAI=ON" "-DSDL_LIBTHAI=OFF" \
                  "for Thai language support (X11)"
fi  &&

optional_depends wayland \
                "-DSDL_WAYLAND=ON" "-DSDL_WAYLAND=OFF" \
                "for Wayland video output support" &&

if is_depends_enabled $SPELL wayland; then
  depends libxkbcommon &&
  optional_depends libdecor \
                  "-DSDL_WAYLAND_LIBDECOR=ON" "-DSDL_WAYLAND_LIBDECOR=OFF" \
                  "for client-side window decorations on Wayland"
fi  &&

###### Audio drivers ######
optional_depends alsa-lib \
                "-DSDL_ALSA=ON" "-DSDL_ALSA=OFF" \
                "for ALSA audio output support" &&

optional_depends pulseaudio \
                "-DSDL_PULSEAUDIO=ON" "-DSDL_PULSEAUDIO=OFF" \
                "for PulseAudio audio output support" &&

optional_depends pipewire \
                "-DSDL_PIPEWIRE=ON" "-DSDL_PIPEWIRE=OFF" \
                "for PipeWire audio support" &&

optional_depends JACK-DRIVER \
                "-DSDL_JACK=ON" "-DSDL_JACK=OFF" \
                "for JACK audio output support" &&

optional_depends oss \
                "-DSDL_OSS=ON" "-DSDL_OSS=OFF" \
                "for OSS audio output support" &&

optional_depends sndio \
                "-DSDL_SNDIO=ON" "-DSDL_SNDIO=OFF" \
                "for sndio audio support" &&

###### Graphics APIs ######
# SDL ships its own GLES2 headers, but GL and EGL headers come from mesa
optional_depends mesa \
                "-DSDL_OPENGL=ON -DSDL_OPENGLES=ON" \
                "-DSDL_OPENGL=OFF -DSDL_OPENGLES=OFF" \
                "for OpenGL and OpenGL ES support" &&

suggest_depends vulkan-loader \
                "-DSDL_VULKAN=ON -DSDL_RENDER_VULKAN=ON" \
                "-DSDL_VULKAN=OFF -DSDL_RENDER_VULKAN=OFF" \
                "for Vulkan support" &&

###### Input / system ######
optional_depends libusb \
                "-DSDL_HIDAPI_LIBUSB=ON" "-DSDL_HIDAPI_LIBUSB=OFF" \
                "for HIDAPI on top of libusb" &&

optional_depends DEVICE-MANAGER \
                "-DSDL_LIBUDEV=ON" "-DSDL_LIBUDEV=OFF" \
                "for libudev device hotplug support" &&

optional_depends dbus \
                "-DSDL_DBUS=ON" "-DSDL_DBUS=OFF" \
                "for D-Bus support" &&

optional_depends liburing \
                "-DSDL_LIBURING=ON" "-DSDL_LIBURING=OFF" \
                "for liburing async I/O (experimental)"
