. "$GRIMOIRE"/MESON_DEPENDS &&
. "$GRIMOIRE"/VDEPENDS &&

case "$HOST" in
  (*-musl)
    vdepends <<< 'musl >= 1.2.2'
    ;;
  (*)
    optional_depends fuse3 \
		     --enable-fuse \
		     --disable-fuse \
		     'for FUSE block device export'
    ;;
esac &&

for qaudio in ${QEMU_AUDIO}; do
  case ${qaudio} in
    alsa) depends alsa-lib ;;
     sdl) depends sdl2 ;;
      pa) depends pulseaudio ;;
    jack) depends JACK-DRIVER ;;
     oss) depends oss ;;
pipewire) depends pipewire ;;
  esac
done &&

if list_find '--enable-docs' ${QEMU_OPTS}; then
  depends texinfo &&
  depends python-sphinx &&
  depends perl &&
  depends podlators
fi &&

optional_depends gtk+3   \
		 '--enable-gtk'  \
		 '--disable-gtk' \
		 'for GTK+ 3.x UI'  &&

if is_depends_enabled $SPELL gtk+3; then
  optional_depends vte3 '--enable-vte' '--disable-vte' \
		   'VTE support for the GTK+ UI'
fi  &&

optional_depends sdl2                                  \
		 '--enable-sdl'                        \
		 '--disable-sdl'                       \
		 'for SDL 2.x UI (recommended)'  &&
if is_depends_enabled "$SPELL" sdl2; then
 optional_depends sdl2_image \
		  --enable-sdl-image \
		  --disable-sdl-image \
		  'for SDL Image support for icons'
fi &&


optional_depends ncurses                               \
                 "--enable-curses"                     \
                 "--disable-curses"                    \
                 "for curses UI"                       &&

optional_depends curl                                  \
                 "--enable-curl"                       \
                 "--disable-curl"                      \
                 "for curl connectivity support"       &&

optional_depends attr                                  \
                 '--enable-attr'                       \
                 '--disable-attr'                      \
                 'for attr/xattr support in XFS'       &&

optional_depends libcap-ng                             \
                '--enable-cap-ng'                      \
                '--disable-cap-ng'                     \
                'for expanded Linux POSIX API capabilities' &&

optional_depends libaio                                       \
                 '--enable-linux-aio'                         \
                 '--disable-linux-aio'                        \
                 'for Linux native asynchronous I/O support'  &&

optional_depends spice                                    \
                 '--enable-spice'                         \
                 '--disable-spice'                        \
                 'for SPICE virtualized desktop support'  &&

optional_depends usbredir \
		 --enable-usb-redir \
		 --disable-usb-redir \
		 'for USB network redirection support' &&

optional_depends libusb                          \
                 '--enable-libusb'               \
                 '--disable-libusb'              \
                 'for USB pass-through support'  &&

optional_depends libcacard                    \
                 '--enable-smartcard'         \
                 '--disable-smartcard'        \
                 'for SmartCard support'  &&

optional_depends lzo \
		 --enable-lzo \
		 --disable-lzo \
		 'for LZO compression support' &&

optional_depends snappy \
		 --enable-snappy \
		 --disable-snappy \
		 'for Snappy compression support' &&

optional_depends bzip2 \
		 --enable-bzip2 \
		 --disable-bzip2 \
		 'for reading bzip2-compressed DMG images' &&

#optional_depends lzfse \
#		 --enable-lzfse \
#		 --disable-lzfse \
#		 'for reading lzfse-compressed DMG images' &&

optional_depends zstd \
		 --enable-zstd \
		 --disable-zstd \
		 'for migration and qcow2 cluster compression' &&

optional_depends libxml2 \
		 '--enable-parallels' \
		 '--disable-parallels' \
		 'for Parallels image format support' &&

case "$QEMU_OPTS" in *--enable-vnc*)
  # In QEMU's order of preference
  optional_depends gnutls \
                   --enable-gnutls \
                   --disable-gnutls \
                   'to enable TLS encryption for VNC server using GnuTLS' &&
  if ! is_depends_enabled "$SPELL" gnutls; then
    optional_depends libgcrypt \
		     --enable-gcrypt \
		     --disable-gcrypt \
                     'to enable TLS encryption for VNC server using libgcrypt' &&
    if ! is_depends_enabled "$SPELL" libgcrypt; then
      optional_depends nettle \
		       --enable-nettle \
		       --disable-nettle \
                       'to enable TLS encryption for VNC server using Nettle'
    fi
  fi &&

  suggest_depends  LIBSASL                               \
                   "--enable-vnc-sasl"                   \
                   "--disable-vnc-sasl"                  \
                   "to enable SASL encryption for VNC server" &&

  suggest_depends  JPEG                                  \
                   '--enable-vnc-jpeg'                   \
                   '--disable-vnc-jpeg'                  \
                   'for JPEG lossy compression for VNC server' &&

  suggest_depends  libpng                                \
                   '--enable-png'                    \
                   '--disable-png'                   \
                   'for PNG compression for VNC server'
  ;;
esac &&

optional_depends capstone \
		 --enable-capstone \
		 --disable-capstone \
		 'for capstone disassembler support' &&

optional_depends jemalloc '--enable-malloc=jemalloc' '' \
		 'for jemalloc support' &&

optional_depends libssh \
		 --enable-libssh \
		 --disable-libssh \
		 'for SSH block device support' &&

optional_depends DEVICE-MANAGER \
		 --enable-libudev \
		 --disable-libudev \
		 'to enumerate host devices with libudev' &&

suggest_depends  libslirp                              \
                 --enable-slirp                        \
                 --disable-slirp                       \
                 'for simple networking (-net user)'   &&

suggest_depends  bridge-utils                          \
                 ''                                    \
                 ''                                    \
                 "for creating TUN/TAP bridges"        &&

suggest_depends  iproute2                              \
                 ""                                    \
                 ""                                    \
                 "for routing between TUN/TAP interfaces"
