. "$GRIMOIRE"/MESON_DEPENDS &&

depends cmake      &&
depends check      &&
depends libsndfile &&

if [[ "$PULSE_DB" == 'gdbm' ]]; then
   depends gdbm "database=gdbm"
elif [[ "$PULSE_DB" == 'tdb' ]]; then
   depends tdb "database=tdb"
else
   message "using configuration database $PULSE_DB"
fi &&

# gettext is needed in order to build the desktop files
depends GETTEXT   &&
optional_depends libx11                           \
                 "x11=enabled"                   \
                 "x11=disabled"                  \
                 "Enable X11 support?"            &&

if is_depends_enabled $SPELL libx11; then
  depends  libice   &&
  depends  libsm    &&
  depends  libxext  &&
  depends  libxtst
fi  &&
optional_depends alsa-lib                     \
                 "alsa=enabled"                  \
                 "alsa=disabled"                 \
                 "Enable Advanced Linux Sound Architecture support? (RECOMMENDED)"  &&
optional_depends elogind                       \
                 "elogind=enabled"                 \
                 "elogind=disabled"                \
                 "Enable elogind support?"     &&
optional_depends glib2                       \
                 "glib=enabled"                 \
                 "glib=disabled"                \
                 "Enable glib2 support?"     &&
optional_depends gtk+3 \
                 "gtk=enabled" \
                 "gtk=disabled" \
                 "for GTK+3 support" &&

if is_depends_enabled $SPELL gtk+3; then
  depends  libxxf86vm
fi  &&

optional_depends gconf2 \
                 "gsettings=enabled" \
                 "gsettings=disabled" \
                 "for gsettings support" &&
optional_depends avahi                            \
                 "avahi=enabled"                     \
                 "avahi=disabled"                    \
                 "for ZerConf configuration support"  &&
optional_depends JACK-DRIVER                      \
                 "jack=enabled"                  \
                 "jack=disabled"                 \
                 "for low-latency sound server support?"  &&
optional_depends libasyncns                       \
                 "asyncns=enabled"               \
                 "asyncns=disabled"              \
                 "for asynchronous service queries?"  &&
optional_depends tcp_wrappers                     \
                 "tcpwrap=enabled"               \
                 "tcpwrap=disabled"              \
                 "Enable TCP network filtering?"  &&
optional_depends lirc                             \
                 "lirc=enabled"                  \
                 "lirc=disabled"                 \
                 "Enable infra-red remote control support?"  &&
optional_depends DEVICE-MANAGER                \
                 "udev=enabled hal-compat=false" \
                 "udev=disabled"              \
                 "for device hotplug support"  &&
optional_depends bluez5 \
                 "bluez5=enabled" \
                 "bluez5=disabled" \
                 "for BlueZ-5 support" &&
optional_depends gstreamer-1.0 \
                 "gstreamer=enabled" \
                 "gstreamer=disabled" \
                 "for GStreamer-based RTP support" &&
if is_depends_enabled $SPELL bluez5 && \
    is_depends_enabled $SPELL gstreamer-1.0; then
  OPTS+=" bluez5-gstreamer=enabled"
fi &&

if is_depends_enabled $SPELL bluez ||
   is_depends_enabled $SPELL bluez5; then
  depends sbc &&
  depends dbus "dbus=enabled"
else
  optional_depends dbus                    \
                   "dbus=enabled"             \
                   "dbus=disabled"            \
                   "for D-BUS system messaging" 
fi &&

optional_depends SSL \
                 "openssl=enabled" \
                 "openssl=disabled" \
                 "for SSL support (Airtunes/RAOP)" &&
optional_depends doxygen \
                 "doxygen=true man=true" \
                 "doxygen=false man=false" \
                 "for doxygen-generated documentation" &&

optional_depends -sub SINGLE fftw \
                'fftw=enabled' \
                'fftw=disabled' \
                'build equalizer' &&

optional_depends orc \
                 'orc=enabled' \
                 'orc=disabled' \
                 'improve code' &&

optional_depends speexdsp \
                 "speex=enabled" \
                 "speex=disabled" \
                 "for speex resampling support" &&

optional_depends soxr \
                 "soxr=enabled" \
                 "soxr=disabled" \
                 "for SoXR resampling support" &&

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

# not optional, build barks out without
if ! list_find "$PULSEAUDIO_OPTS" adrian-aec=true; then
  message "${MESSAGE_COLOR}Some processor is required, forcing the external one.${DEFAULT_COLOR}" &&
  depends webrtc-audio-processing \
                 "webrtc-aec=enabled"
else
  optional_depends webrtc-audio-processing \
                   "webrtc-aec=enabled" \
                   "webrtc-aec=disabled" \
                   "for WebRTC-based echo canceller"
fi &&

if is_depends_enabled ${SPELL} webrtc-audio-processing; then
  depends -sub CXX gcc
fi &&

suggest_depends  pasystray     ''  ''  'for Preferences tool & System Tray' &&
suggest_depends  paprefs       ''  ''  'for Preferences tool'               &&
suggest_depends  pavucontrol   ''  ''  'for Volume Control tool'            &&
suggest_depends  ncpamixer     ''  ''  'for TUI Volume Control tool'        &&
suggest_depends  pavumeter     ''  ''  'for Volume Meter tool'              &&
suggest_depends  paman         ''  ''  'for Manager tool'
