. "${GRIMOIRE}/MESON_DEPENDS" &&
depends perl   &&
depends LIBAVCODEC &&
depends libass &&
depends libplacebo &&

if [[ "${MPV_BRANCH}" == "scm" ]]; then
  depends git &&
optional_depends sdl2 "" \
                 "sdl2-audio=disabled sdl2-gamepad=disabled" \
                 "for SDL 2.0+ audio and video output"
else
optional_depends sdl2 \
                 "sdl2=enabled" \
                 "sdl2=disabled sdl2-audio=disabled sdl2-gamepad=disabled" \
                 "for SDL 2.0+ audio and video output"
fi &&

optional_depends LUA \
                 "lua=enabled" \
                 "lua=disabled" \
                 "for Lua scripting support" &&

optional_depends docutils \
                 "manpage-build=enabled" \
                 "manpage-build=disabled" \
                 "to build and install manpage" &&

# audio output
optional_depends alsa-lib \
                 "alsa=enabled" \
                 "alsa=disabled" \
                 "for ALSA audio output" &&

optional_depends pipewire \
                 "pipewire=enabled" \
                 "pipewire=disabled" \
                 "for Pipewire audio output" &&

optional_depends pulseaudio \
                 "pulse=enabled" \
                 "pulse=disabled" \
                 "for Pulseaudio audio output" &&

optional_depends JACK-DRIVER \
                 "jack=enabled" \
                 "jack=disabled" \
                 "for JACK audio output" &&

optional_depends openal \
                 "openal=enabled" \
                 "openal=disabled" \
                 "for OpenAL audio output" &&

if is_depends_enabled "${SPELL}" sdl2; then
  config_query_option MPV_OPTS "Enable SDL2 gamepad input?" n \
                               "sdl2-gamepad=enabled" \
                               "sdl2-gamepad=disabled" &&

  config_query_option MPV_OPTS "Enable SDL2 audio?" y \
                               "sdl2-audio=enabled" \
                               "sdl2-audio=disabled"
fi &&

optional_depends sndio \
                 "sndio=enabled" \
                 "sndio=disabled" \
                 "for sndio audio output" &&

# video output
optional_depends OPENGL \
                 "gl=enabled" \
                 "gl=disabled" \
                 "for OpenGL video output" &&

optional_depends libcaca \
                 "caca=enabled" \
                 "caca=disabled" \
                 "for CACA video output" &&

# optional_depends sixel \
#                  "sixel=enabled" \
#                  "sixel=disabled" \
#                  "for Sixel support" &&

if is_depends_enabled ${SPELL} libplacebo; then
  optional_depends vulkan-loader \
                   "vulkan=enabled" \
                   "vulkan=disabled" \
                   "for Vulkan context support"
fi &&

optional_depends libva \
                 "vaapi=enabled" \
                 "vaapi=disabled" \
                 "for VAAPI video acceleration" &&

optional_depends wayland \
                 "wayland=enabled" \
                 "wayland=disabled" \
                 "for Wayland support" &&

if list_find "$MPV_OPTS" "gpl=true"; then
  optional_depends libx11 \
                   "x11=enabled" \
                   "x11=disabled" \
                   "for X11 video output" &&
  if is_depends_enabled $SPELL libx11; then
    depends libxext &&
    depends libxpresent &&
    depends libxrandr &&
    depends libxscrnsaver &&
    depends libxinerama &&

    optional_depends libvdpau \
                     "vdpau=enabled" \
                     "vdpau=disabled" \
                     "for VDPAU acceleration" &&

    optional_depends libxv \
                     "xv=enabled" \
                     "xv=disabled" \
                     "for Xv video output"
  fi
fi &&


# codecs
optional_depends JPEG \
                 "jpeg=enabled" \
                 "jpeg=disabled" \
                 "for JPEG input/output support" &&

optional_depends libcdio-paranoia \
                 "cdda=enabled" \
                 "cdda=disabled" \
                 "for cdda support" &&

# features

optional_depends lcms2 \
                 "lcms2=enabled" \
                 "lcms2=disabled" \
                 "for LCMS2 support" &&

optional_depends libbluray \
                 "libbluray=enabled" \
                 "libbluray=disabled" \
                 "for Blu-ray support" &&

if list_find "$MPV_OPTS" "gpl=true"; then
  optional_depends libdvdnav \
                   "dvdnav=enabled" \
                   "dvdnav=disabled" \
                   "for dvd navigation support"
fi &&

optional_depends uchardet \
                 "uchardet=enabled" \
                 "uchardet=disabled" \
                 "for charset discovery and conversion using uchardet" &&

optional_depends smgl-gl_select "" "" "to select OPENGL provider" &&

if is_depends_enabled "${SPELL}" "$(get_spell_provider ${SPELL} LUA)"; then
  optional_depends youtube-dl "" "" "to watch Youtube videos"
fi &&

optional_depends libarchive \
                 "libarchive=enabled" \
                 "libarchive=disabled" \
                 "to support reading zip files and more"
