. "${GRIMOIRE}/MESON_DEPENDS" &&
depends -sub CXX gcc &&
depends fmt   &&
# TODO: missing libraries in grimoire:
# - libgme (gme=enabled) for Blargg's game music emulator plugin
# - libadplug (adplug=enabled) for AdPlug decoder plugin
# - create the missing sphinxcontrib packages to build the documentation

optional_depends icu \
                 "icu=enabled" \
                 "icu=disabled" \
                 "for Unicode support" &&

optional_depends libao \
                 "ao=enabled" \
                 "ao=disabled" \
                 "for libao support" &&

optional_depends zlib \
                 "zlib=enabled" \
                 "zlib=disabled" \
                 "for zlib support" &&

optional_depends bzip2 \
                 "bzip2=enabled" \
                 "bzip2=disabled" \
                 "for bzip2 archive support" &&

optional_depends zziplib \
                 "zzip=enabled" \
                 "zzip=disabled" \
                 "for zip archive support" &&

optional_depends libvorbis \
                 "vorbis=enabled" \
                 "vorbis=disabled" \
                 "for Ogg Vorbis support" &&

if is_depends_enabled $SPELL libvorbis; then
  depends libogg &&

  config_query_option MPD_OPTS "Enable Ogg Vorbis encoder support?" y \
                               "vorbisenc=enabled" \
                               "vorbisenc=disabled"
fi &&

optional_depends sidplay-libs \
                 "sidplay=enabled" \
                 "sidplay=disabled" \
                 "for C64 SID support" &&

optional_depends flac \
                 "flac=enabled" \
                 "flac=disabled" \
                 "for FLAC support" &&

optional_depends faad2 \
                 "faad=enabled" \
                 "faad=disabled" \
                 "for MP4/AAC audio support" &&

optional_depends audiofile \
                 "audiofile=enabled" \
                 "audiofile=disabled" \
                 "for WAVE, AIFF and AU file support" &&

if is_depends_enabled $SPELL audiofile; then
  config_query_option MPD_OPTS "Enable WAVE encoder support?" y \
                               "wave_encoder=true" \
                               "wave_encoder=false"
fi &&

optional_depends libsndfile \
                 "sndfile=enabled" \
                 "sndfile=disabled" \
                 "for sndfile support" &&

optional_depends alsa-lib \
                 "alsa=enabled" \
                 "alsa=disabled" \
                 "for alsa mixer support" &&

optional_depends oss \
                 "oss=enabled" \
                 "oss=disabled" \
                 "for Open Sound System support" &&

optional_depends JACKRIVER \
                 "jack=enabled" \
                 "jack=disabled" \
                 "for JACK output support" &&

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

optional_depends pulseaudio \
                 "pulse=enabled" \
                 "pulse=disabled" \
                 "for pulseaudio output support" &&

optional_depends libmad \
                 "mad=enabled" \
                 "mad=disabled" \
                 "for mp3 files support (libmad)" &&

optional_depends mpg123 \
                 "mpg123=enabled" \
                 "mpg123=disabled" \
                 "for mp3 files support (libmpg123)" &&

optional_depends opus \
                 "opus=enabled" \
                 "opus=disabled" \
                 "for opus decoder support" &&

optional_depends libid3tag \
                 "id3tag=enabled" \
                 "id3tag=disabled" \
                 "to use id3 tags" &&

optional_depends chromaprint \
                 "chromaprint=enabled" \
                 "chromaprint=disabled" \
                 "for ChromaPrint/AcoustID support" &&

optional_depends libmikmod \
                 "mikmod=enabled" \
                 "mikmod=disabled" \
                 "for mod file support (libmikmod)" &&

optional_depends libmodplug \
                 "modplug=enabled" \
                 "modplug=disabled" \
                 "for mod file support (libmodplug)" &&

optional_depends wildmidi \
                 "wildmidi=enabled" \
                 "wildmidi=disabled" \
                 "for MIDI support via wildmidi" &&

optional_depends fluidsynth \
                 "fluidsynth=enabled" \
                 "fluidsynth=disabled" \
                 "for MIDI support via fluidsynth" &&

optional_depends libsamplerate \
                 "libsamplerate=enabled" \
                 "libsamplerate=disabled" \
                 "for samplerate conversions" &&

optional_depends libshout \
                 "shout=enabled" \
                 "shout=disabled" \
                 "for shoutcast streaming output support" &&

optional_depends wavpack \
                 "wavpack=enabled" \
                 "wavpack=disabled" \
                 "for WavPack support" &&

optional_depends lame \
                 "lame=enabled" \
                 "lame=disabled" \
                 "for LAME encoder support" &&

optional_depends twolame \
                 "twolame=enabled" \
                 "twolame=disabled" \
                 "for TwoLAME mp2 encoder support" &&

optional_depends curl \
                 "curl=enabled" \
                 "curl=disabled" \
                 "for obtaining song data via HTTP support" &&
if is_depends_enabled "${SPELL}" "curl"; then
  optional_depends expat \
                   "webdav=enabled" \
                   "webdav=disabled" \
                   "for WebDAV support"
fi &&

optional_depends sqlite \
                 "sqlite=enabled" \
                 "sqlite=disabled" \
                 "for SQLite database support" &&

optional_depends LIBAVCODEC \
                 "ffmpeg=enabled" \
                 "ffmpeg=disabled" \
                 "for FFMPEG support" &&

if is_depends_enabled $SPELL ffmpeg; then
  sub_depends ffmpeg STABLE
fi &&

optional_depends libmpdclient \
                 "libmpdclient=enabled" \
                 "libmpdclient=disabled" \
                 "for MPD client support" &&

optional_depends OPENAL \
                 "openal=enabled" \
                 "openal=disabled" \
                 "for OpenAL support" &&

optional_depends libmms \
                 "mms=enabled" \
                 "mms=disabled" \
                 "for MMS protocol support" &&

optional_depends libnfs \
                 "nfs=enabled" \
                 "nfs=disabled" \
                 "for NFS protocol support" &&

optional_depends samba4 \
                 "smbclient=enabled" \
                 "smbclient=disabled" \
                 "for SMB protocol support" &&

optional_depends libcdio \
                 "iso9660=enabled" \
                 "iso9660=disabled" \
                 "for libiso9660 archive plugin" &&

optional_depends libcdio-paranoia \
                 "cdio_paranoia=enabled" \
                 "cdio_paranoia=disabled" \
                 "for audio CD support" &&

optional_depends avahi \
                 "zeroconf=avahi" \
                 "zeroconf=disabled" \
                 "for Zeroconf service discovery support" &&

optional_depends SYSTEM-LOGGER \
                 "syslog=enabled" \
                 "syslog=disabled" \
                 "for syslog support" &&

optional_depends systemd \
                 "systemd=enabled" \
                 "systemd=disabled" \
                 "to use the systemd daemon library" &&

optional_depends udisks2 \
                 "udisks=enabled" \
                 "udisks=disabled" \
                 "for removable media support" &&

optional_depends libiconv \
                 "iconv=enabled" \
                 "iconv=auto" \
                 "for character conversion via libiconv" &&

optional_depends python-sphinx \
                 "documentation=enabled" \
                 "documentation=disabled" \
                 "to build documentation" &&
if is_depends_enabled $SPELL python-sphinx; then
  depends python-sphinxcontrib-qthelp &&
  depends python-sphinxcontrib-serializinghtml &&
  depends python-sphinxcontrib-htmlhelp &&
  depends python-sphinxcontrib-jsmath
fi &&

optional_depends nlohmann_json \
                 "nlohmann_json=enabled" \
                 "nlohmann_json=disabled" \
                 "for JSON support"
