On Thu, Oct 7, 2021 at 5:07 PM Paolo Bonzini <pbonz...@redhat.com> wrote:

> This brings a change that makes audio drivers more similar to all
> other modules.  All drivers are built by default, while
> --audio-drv-list only governs the default choice of the audio driver.
>
> Meson options are added to disable the drivers, and the next patches
> will fix the help messages and command line options, and especially
> make the non-default drivers available via -audiodev.
>
> Cc: Gerd Hoffman <kra...@redhat.com>
> Cc: Volker Rümelin <vr_q...@t-online.de>
> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
>

tricky.. but lgtm
Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com>

---
>  audio/meson.build |  23 +++---
>  configure         | 184 +---------------------------------------------
>  meson.build       | 137 +++++++++++++++++++++++++++++-----
>  meson_options.txt |  18 ++++-
>  4 files changed, 147 insertions(+), 215 deletions(-)
>
> diff --git a/audio/meson.build b/audio/meson.build
> index 9a95c58f18..462533bb8c 100644
> --- a/audio/meson.build
> +++ b/audio/meson.build
> @@ -7,23 +7,22 @@ softmmu_ss.add(files(
>    'wavcapture.c',
>  ))
>
> -softmmu_ss.add(when: [coreaudio, 'CONFIG_AUDIO_COREAUDIO'], if_true:
> files('coreaudio.c'))
> -softmmu_ss.add(when: [dsound, 'CONFIG_AUDIO_DSOUND'],
> -               if_true: files('dsoundaudio.c', 'audio_win_int.c'))
> +softmmu_ss.add(when: coreaudio, if_true: files('coreaudio.c'))
> +softmmu_ss.add(when: dsound, if_true: files('dsoundaudio.c',
> 'audio_win_int.c'))
>
>  audio_modules = {}
>  foreach m : [
> -  ['CONFIG_AUDIO_ALSA', 'alsa', alsa, 'alsaaudio.c'],
> -  ['CONFIG_AUDIO_OSS', 'oss', oss, 'ossaudio.c'],
> -  ['CONFIG_AUDIO_PA', 'pa', pulse, 'paaudio.c'],
> -  ['CONFIG_AUDIO_SDL', 'sdl', sdl, 'sdlaudio.c'],
> -  ['CONFIG_AUDIO_JACK', 'jack', jack, 'jackaudio.c'],
> -  ['CONFIG_SPICE', 'spice', spice, 'spiceaudio.c']
> +  ['alsa', alsa, files('alsaaudio.c')],
> +  ['oss', oss, files('ossaudio.c')],
> +  ['pa', pulse, files('paaudio.c')],
> +  ['sdl', sdl, files('sdlaudio.c')],
> +  ['jack', jack, files('jackaudio.c')],
> +  ['spice', spice, files('spiceaudio.c')]
>  ]
> -  if config_host.has_key(m[0])
> +  if m[1].found()
>      module_ss = ss.source_set()
> -    module_ss.add(when: m[2], if_true: files(m[3]))
> -    audio_modules += {m[1] : module_ss}
> +    module_ss.add(m[1], m[2])
> +    audio_modules += {m[0] : module_ss}
>    endif
>  endforeach
>
> diff --git a/configure b/configure
> index 6a6273ce7b..fcadcf9577 100755
> --- a/configure
> +++ b/configure
> @@ -240,7 +240,7 @@ interp_prefix="/usr/gnemul/qemu-%M"
>  static="no"
>  cross_compile="no"
>  cross_prefix=""
> -audio_drv_list=""
> +audio_drv_list="default"
>  block_drv_rw_whitelist=""
>  block_drv_ro_whitelist=""
>  block_drv_whitelist_tools="no"
> @@ -299,7 +299,6 @@ fdt="auto"
>  netmap="no"
>  sdl="auto"
>  sdl_image="auto"
> -coreaudio="auto"
>  virtiofsd="auto"
>  virtfs="auto"
>  libudev="auto"
> @@ -356,7 +355,6 @@ module_upgrades="no"
>  prefix="/usr/local"
>  qemu_suffix="qemu"
>  slirp="auto"
> -oss_lib=""
>  bsd="no"
>  linux="no"
>  solaris="no"
> @@ -703,54 +701,35 @@ fi
>  case $targetos in
>  MINGW32*)
>    mingw32="yes"
> -  audio_possible_drivers="dsound sdl"
> -  if check_include dsound.h; then
> -    audio_drv_list="dsound"
> -  else
> -    audio_drv_list=""
> -  fi
>    supported_os="yes"
>    plugins="no"
>    pie="no"
>  ;;
>  GNU/kFreeBSD)
>    bsd="yes"
> -  audio_drv_list="oss try-sdl"
> -  audio_possible_drivers="oss sdl pa"
>  ;;
>  FreeBSD)
>    bsd="yes"
>    bsd_user="yes"
>    make="${MAKE-gmake}"
> -  audio_drv_list="oss try-sdl"
> -  audio_possible_drivers="oss sdl pa"
>    # needed for kinfo_getvmmap(3) in libutil.h
>    netmap=""  # enable netmap autodetect
>  ;;
>  DragonFly)
>    bsd="yes"
>    make="${MAKE-gmake}"
> -  audio_drv_list="oss try-sdl"
> -  audio_possible_drivers="oss sdl pa"
>  ;;
>  NetBSD)
>    bsd="yes"
>    make="${MAKE-gmake}"
> -  audio_drv_list="oss try-sdl"
> -  audio_possible_drivers="oss sdl"
> -  oss_lib="-lossaudio"
>  ;;
>  OpenBSD)
>    bsd="yes"
>    make="${MAKE-gmake}"
> -  audio_drv_list="try-sdl"
> -  audio_possible_drivers="sdl"
>  ;;
>  Darwin)
>    bsd="yes"
>    darwin="yes"
> -  audio_drv_list="try-coreaudio try-sdl"
> -  audio_possible_drivers="coreaudio sdl"
>    # Disable attempts to use ObjectiveC features in os/object.h since they
>    # won't work when we're compiling with gcc as a C compiler.
>    QEMU_CFLAGS="-DOS_OBJECT_USE_OBJC=0 $QEMU_CFLAGS"
> @@ -759,10 +738,6 @@ SunOS)
>    solaris="yes"
>    make="${MAKE-gmake}"
>    smbd="${SMBD-/usr/sfw/sbin/smbd}"
> -  if test -f /usr/include/sys/soundcard.h ; then
> -    audio_drv_list="oss try-sdl"
> -  fi
> -  audio_possible_drivers="oss sdl"
>  # needed for CMSG_ macros in sys/socket.h
>    QEMU_CFLAGS="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS"
>  # needed for TIOCWIN* defines in termios.h
> @@ -774,8 +749,6 @@ Haiku)
>    QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS -D_BSD_SOURCE -fPIC
> $QEMU_CFLAGS"
>  ;;
>  Linux)
> -  audio_drv_list="try-pa oss"
> -  audio_possible_drivers="oss alsa sdl pa"
>    linux="yes"
>    linux_user="yes"
>    vhost_user=${default_feature:-yes}
> @@ -1795,7 +1768,6 @@ Advanced options (experts only):
>    --disable-werror         disable compilation abort on warning
>    --disable-stack-protector disable compiler-provided stack protection
>    --audio-drv-list=LIST    set audio drivers list:
> -                           Available drivers: $audio_possible_drivers
>    --block-drv-whitelist=L  Same as --block-drv-rw-whitelist=L
>    --block-drv-rw-whitelist=L
>                             set block driver read-write whitelist
> @@ -2398,12 +2370,6 @@ if test -z "$want_tools"; then
>      fi
>  fi
>
> -##########################################
> -# Disable features only meaningful for system-mode emulation
> -if test "$softmmu" = "no"; then
> -    audio_drv_list=""
> -fi
> -
>  ##########################################
>  # L2TPV3 probe
>
> @@ -2982,130 +2948,6 @@ EOF
>    fi
>  fi
>
> -##########################################
> -# detect CoreAudio
> -if test "$coreaudio" != "no" ; then
> -  coreaudio_libs="-framework CoreAudio"
> -  cat > $TMPC << EOF
> -#include <CoreAudio/CoreAudio.h>
> -int main(void)
> -{
> -  return (int)AudioGetCurrentHostTime();
> -}
> -EOF
> -  if compile_prog "" "$coreaudio_libs" ; then
> -    coreaudio=yes
> -  else
> -    coreaudio=no
> -  fi
> -fi
> -
> -##########################################
> -# Sound support libraries probe
> -
> -audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/,/ /g')
> -for drv in $audio_drv_list; do
> -    case $drv in
> -    alsa | try-alsa)
> -    if $pkg_config alsa --exists; then
> -        alsa_libs=$($pkg_config alsa --libs)
> -        alsa_cflags=$($pkg_config alsa --cflags)
> -        alsa=yes
> -        if test "$drv" = "try-alsa"; then
> -            audio_drv_list=$(echo "$audio_drv_list" | sed -e
> 's/try-alsa/alsa/')
> -        fi
> -    else
> -        if test "$drv" = "try-alsa"; then
> -            audio_drv_list=$(echo "$audio_drv_list" | sed -e
> 's/try-alsa//')
> -        else
> -            error_exit "$drv check failed" \
> -                "Make sure to have the $drv libs and headers installed."
> -        fi
> -    fi
> -    ;;
> -
> -    pa | try-pa)
> -    if $pkg_config libpulse --exists; then
> -        libpulse=yes
> -        pulse_libs=$($pkg_config libpulse --libs)
> -        pulse_cflags=$($pkg_config libpulse --cflags)
> -        if test "$drv" = "try-pa"; then
> -            audio_drv_list=$(echo "$audio_drv_list" | sed -e
> 's/try-pa/pa/')
> -        fi
> -    else
> -        if test "$drv" = "try-pa"; then
> -            audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-pa//')
> -        else
> -            error_exit "$drv check failed" \
> -                "Make sure to have the $drv libs and headers installed."
> -        fi
> -    fi
> -    ;;
> -
> -    sdl)
> -    if test "$sdl" = "no"; then
> -        error_exit "sdl not found or disabled, can not use sdl audio
> driver"
> -    fi
> -    ;;
> -
> -    try-sdl)
> -    if test "$sdl" = "no"; then
> -        audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-sdl//')
> -    else
> -        audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-sdl/sdl/')
> -    fi
> -    ;;
> -
> -    coreaudio | try-coreaudio)
> -    if test "$coreaudio" = "no"; then
> -      if test "$drv" = "try-coreaudio"; then
> -        audio_drv_list=$(echo "$audio_drv_list" | sed -e
> 's/try-coreaudio//')
> -      else
> -        error_exit "$drv check failed" \
> -                "Make sure to have the $drv is available."
> -      fi
> -    else
> -      coreaudio_libs="-framework CoreAudio"
> -      if test "$drv" = "try-coreaudio"; then
> -        audio_drv_list=$(echo "$audio_drv_list" | sed -e
> 's/try-coreaudio/coreaudio/')
> -      fi
> -    fi
> -    ;;
> -
> -    dsound)
> -      dsound_libs="-lole32 -ldxguid"
> -    ;;
> -
> -    oss)
> -      oss_libs="$oss_lib"
> -    ;;
> -
> -    jack | try-jack)
> -    if $pkg_config jack --exists; then
> -        libjack=yes
> -        jack_libs=$($pkg_config jack --libs)
> -        if test "$drv" = "try-jack"; then
> -            audio_drv_list=$(echo "$audio_drv_list" | sed -e
> 's/try-jack/jack/')
> -        fi
> -    else
> -        if test "$drv" = "try-jack"; then
> -            audio_drv_list=$(echo "$audio_drv_list" | sed -e
> 's/try-jack//')
> -        else
> -            error_exit "$drv check failed" \
> -                "Make sure to have the $drv libs and headers installed."
> -        fi
> -    fi
> -    ;;
> -
> -    *)
> -    echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
> -        error_exit "Unknown driver '$drv' selected" \
> -            "Possible drivers are: $audio_possible_drivers"
> -    }
> -    ;;
> -    esac
> -done
> -
>  ##########################################
>  # plugin linker support probe
>
> @@ -4536,28 +4378,6 @@ fi
>  if test "$gprof" = "yes" ; then
>    echo "CONFIG_GPROF=y" >> $config_host_mak
>  fi
> -echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
> -for drv in $audio_drv_list; do
> -    def=CONFIG_AUDIO_$(echo $drv | LC_ALL=C tr '[a-z]' '[A-Z]')
> -    echo "$def=y" >> $config_host_mak
> -done
> -if test "$alsa" = "yes" ; then
> -    echo "CONFIG_ALSA=y" >> $config_host_mak
> -fi
> -echo "ALSA_LIBS=$alsa_libs" >> $config_host_mak
> -echo "ALSA_CFLAGS=$alsa_cflags" >> $config_host_mak
> -if test "$libpulse" = "yes" ; then
> -    echo "CONFIG_LIBPULSE=y" >> $config_host_mak
> -fi
> -echo "PULSE_LIBS=$pulse_libs" >> $config_host_mak
> -echo "PULSE_CFLAGS=$pulse_cflags" >> $config_host_mak
> -echo "COREAUDIO_LIBS=$coreaudio_libs" >> $config_host_mak
> -echo "DSOUND_LIBS=$dsound_libs" >> $config_host_mak
> -echo "OSS_LIBS=$oss_libs" >> $config_host_mak
> -if test "$libjack" = "yes" ; then
> -    echo "CONFIG_LIBJACK=y" >> $config_host_mak
> -fi
> -echo "JACK_LIBS=$jack_libs" >> $config_host_mak
>  echo "CONFIG_BDRV_RW_WHITELIST=$block_drv_rw_whitelist" >>
> $config_host_mak
>  echo "CONFIG_BDRV_RO_WHITELIST=$block_drv_ro_whitelist" >>
> $config_host_mak
>  if test "$block_drv_whitelist_tools" = "yes" ; then
> @@ -5195,7 +5015,7 @@ if test "$skip_meson" = no; then
>          -Dvhost_user_blk_server=$vhost_user_blk_server
> -Dmultiprocess=$multiprocess \
>          -Dfuse=$fuse -Dfuse_lseek=$fuse_lseek
> -Dguest_agent_msi=$guest_agent_msi -Dbpf=$bpf\
>          $(if test "$default_feature" = no; then echo
> "-Dauto_features=disabled"; fi) \
> -       -Dtcg_interpreter=$tcg_interpreter \
> +        -Daudio_drv_list=$audio_drv_list
> -Dtcg_interpreter=$tcg_interpreter \
>          $cross_arg \
>          "$PWD" "$source_path"
>
> diff --git a/meson.build b/meson.build
> index 7b596fdcd9..13b725181a 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -430,20 +430,23 @@ vde = not_found
>  if config_host.has_key('CONFIG_VDE')
>    vde = declare_dependency(link_args: config_host['VDE_LIBS'].split())
>  endif
> +
>  pulse = not_found
> -if 'CONFIG_LIBPULSE' in config_host
> -  pulse = declare_dependency(compile_args:
> config_host['PULSE_CFLAGS'].split(),
> -                             link_args: config_host['PULSE_LIBS'].split())
> +if not get_option('pa').auto() or (targetos == 'linux' and have_system)
> +  pulse = dependency('libpulse', required: get_option('pa'),
> +                     method: 'pkg-config', kwargs: static_kwargs)
>  endif
>  alsa = not_found
> -if 'CONFIG_ALSA' in config_host
> -  alsa = declare_dependency(compile_args:
> config_host['ALSA_CFLAGS'].split(),
> -                            link_args: config_host['ALSA_LIBS'].split())
> +if not get_option('alsa').auto() or (targetos == 'linux' and have_system)
> +  alsa = dependency('alsa', required: get_option('alsa'),
> +                    method: 'pkg-config', kwargs: static_kwargs)
>  endif
>  jack = not_found
> -if 'CONFIG_LIBJACK' in config_host
> -  jack = declare_dependency(link_args: config_host['JACK_LIBS'].split())
> +if not get_option('jack').auto() or have_system
> +  jack = dependency('jack', required: get_option('jack'),
> +                    method: 'pkg-config', kwargs: static_kwargs)
>  endif
> +
>  spice = not_found
>  spice_headers = not_found
>  spice_protocol = not_found
> @@ -803,16 +806,59 @@ if liblzfse.found() and not cc.links('''
>  endif
>
>  oss = not_found
> -if 'CONFIG_AUDIO_OSS' in config_host
> -  oss = declare_dependency(link_args: config_host['OSS_LIBS'].split())
> +if not get_option('oss').auto() or have_system
> +  if not cc.has_header('sys/soundcard.h')
> +    # not found
> +  elif targetos == 'netbsd'
> +    oss = cc.find_library('ossaudio', required: get_option('oss'),
> +                          kwargs: static_kwargs)
> +  else
> +    oss = declare_dependency()
> +  endif
> +
> +  if not oss.found()
> +    if get_option('oss').enabled()
> +      error('OSS not found')
> +    else
> +      warning('OSS not found, disabling')
> +    endif
> +  endif
>  endif
>  dsound = not_found
> -if 'CONFIG_AUDIO_DSOUND' in config_host
> -  dsound = declare_dependency(link_args:
> config_host['DSOUND_LIBS'].split())
> +if not get_option('dsound').auto() or (targetos == 'windows' and
> have_system)
> +  if cc.has_header('dsound.h')
> +    dsound = declare_dependency(link_args: ['-lole32', '-ldxguid'])
> +  endif
> +
> +  if not dsound.found()
> +    if get_option('dsound').enabled()
> +      error('DirectSound not found')
> +    else
> +      warning('DirectSound not found, disabling')
> +    endif
> +  endif
>  endif
> +
>  coreaudio = not_found
> -if 'CONFIG_AUDIO_COREAUDIO' in config_host
> -  coreaudio = declare_dependency(link_args:
> config_host['COREAUDIO_LIBS'].split())
> +if not get_option('coreaudio').auto() or (targetos == 'darwin' and
> have_system)
> +  coreaudio = dependency('appleframeworks', modules: 'CoreAudio',
> +                         required: get_option('coreaudio'))
> +  if coreaudio.found() and not cc.links('''
> +    #include <CoreAudio/CoreAudio.h>
> +    int main(void)
> +    {
> +      return (int)AudioGetCurrentHostTime();
> +    }''')
> +    coreaudio = not_found
> +  endif
> +
> +  if not coreaudio.found()
> +    if get_option('coreaudio').enabled()
> +      error('CoreAudio not found')
> +    else
> +      warning('CoreAudio not found, disabling')
> +    endif
> +  endif
>  endif
>
>  opengl = not_found
> @@ -1158,6 +1204,49 @@ if libbpf.found() and not cc.links('''
>    endif
>  endif
>
> +#################
> +# config-host.h #
> +#################
> +
> +audio_drivers_selected = []
> +if have_system
> +  audio_drivers_available = {
> +    'alsa': alsa.found(),
> +    'coreaudio': coreaudio.found(),
> +    'dsound': dsound.found(),
> +    'jack': jack.found(),
> +    'oss': oss.found(),
> +    'pa': pulse.found(),
> +    'sdl': sdl.found(),
> +  }
> +
> +  # Default to native drivers first, OSS second, SDL third
> +  audio_drivers_priority = \
> +    [ 'pa', 'coreaudio', 'dsound', 'oss' ] + \
> +    (targetos == 'linux' ? [] : [ 'sdl' ])
> +  audio_drivers_default = []
> +  foreach k: audio_drivers_priority
> +    if audio_drivers_available[k]
> +      audio_drivers_default += k
> +    endif
> +  endforeach
> +
> +  foreach k: get_option('audio_drv_list')
> +    if k == 'default'
> +      audio_drivers_selected += audio_drivers_default
> +    elif not audio_drivers_available[k]
> +      error('Audio driver "@0@" not available.'.format(k))
> +    else
> +      audio_drivers_selected += k
> +    endif
> +  endforeach
> +endif
> +foreach k: audio_drivers_selected
> +  config_host_data.set('CONFIG_AUDIO_' + k.to_upper(), true)
> +endforeach
> +config_host_data.set('CONFIG_AUDIO_DRIVERS',
> +                     '"' + '", "'.join(audio_drivers_selected) + '", ')
> +
>  if get_option('cfi')
>    cfi_flags=[]
>    # Check for dependency on LTO
> @@ -1201,10 +1290,6 @@ endif
>  have_host_block_device = (targetos != 'darwin' or
>      cc.has_header('IOKit/storage/IOMedia.h'))
>
> -#################
> -# config-host.h #
> -#################
> -
>  have_virtfs = (targetos == 'linux' and
>      have_system and
>      libattr.found() and
> @@ -1449,7 +1534,7 @@ config_host_data.set('HAVE_BROKEN_SIZE_MAX', not
> cc.compiles('''
>
>
>  ignored = ['CONFIG_QEMU_INTERP_PREFIX'] # actually per-target
> -arrays = ['CONFIG_AUDIO_DRIVERS', 'CONFIG_BDRV_RW_WHITELIST',
> 'CONFIG_BDRV_RO_WHITELIST']
> +arrays = ['CONFIG_BDRV_RW_WHITELIST', 'CONFIG_BDRV_RO_WHITELIST']
>  strings = ['HOST_DSOSUF', 'CONFIG_IASL']
>  foreach k, v: config_host
>    if ignored.contains(k)
> @@ -2885,7 +2970,7 @@ if config_host.has_key('CONFIG_MODULES')
>  endif
>  summary_info += {'fuzzing support':   config_host.has_key('CONFIG_FUZZ')}
>  if have_system
> -  summary_info += {'Audio drivers':
>  config_host['CONFIG_AUDIO_DRIVERS']}
> +  summary_info += {'Audio drivers':     ' '.join(audio_drivers_selected)}
>  endif
>  summary_info += {'Trace backends':    config_host['TRACE_BACKENDS']}
>  if config_host['TRACE_BACKENDS'].split().contains('simple')
> @@ -3073,6 +3158,18 @@ if vnc.found()
>    summary_info += {'VNC JPEG support':  jpeg}
>    summary_info += {'VNC PNG support':   png}
>  endif
> +if targetos not in ['darwin', 'haiku', 'windows']
> +  summary_info += {'OSS support':     oss}
> +elif targetos == 'darwin'
> +  summary_info += {'CoreAudio support': coreaudio}
> +elif targetos == 'windows'
> +  summary_info += {'DirectSound support': dsound}
> +endif
> +if targetos == 'linux'
> +  summary_info += {'ALSA support':    alsa}
> +  summary_info += {'PulseAudio support': pulse}
> +endif
> +summary_info += {'JACK support':      jack}
>  summary_info += {'brlapi support':    brlapi}
>  summary_info += {'vde support':       config_host.has_key('CONFIG_VDE')}
>  summary_info += {'netmap support':
> config_host.has_key('CONFIG_NETMAP')}
> diff --git a/meson_options.txt b/meson_options.txt
> index 2c89e79e8b..052c4f088e 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -6,9 +6,12 @@ option('qemu_firmwarepath', type : 'string', value : '',
>         description: 'search PATH for firmware files')
>  option('sphinx_build', type : 'string', value : '',
>         description: 'Use specified sphinx-build [$sphinx_build] for
> building document (default to be empty)')
> -
>  option('default_devices', type : 'boolean', value : true,
>         description: 'Include a default selection of devices in emulators')
> +option('audio_drv_list', type: 'array', value: ['default'],
> +       choices: ['alsa', 'coreaudio', 'default', 'dsound', 'jack', 'oss',
> 'pa', 'sdl'],
> +       description: 'Set audio driver list')
> +
>  option('docs', type : 'feature', value : 'auto',
>         description: 'Documentations build support')
>  option('gettext', type : 'feature', value : 'auto',
> @@ -139,6 +142,19 @@ option('fuse', type: 'feature', value: 'auto',
>  option('fuse_lseek', type : 'feature', value : 'auto',
>         description: 'SEEK_HOLE/SEEK_DATA support for FUSE exports')
>
> +option('alsa', type: 'feature', value: 'auto',
> +       description: 'ALSA sound support')
> +option('coreaudio', type: 'feature', value: 'auto',
> +       description: 'CoreAudio sound support')
> +option('dsound', type: 'feature', value: 'auto',
> +       description: 'DirectSound sound support')
> +option('jack', type: 'feature', value: 'auto',
> +       description: 'JACK sound support')
> +option('oss', type: 'feature', value: 'auto',
> +       description: 'OSS sound support')
> +option('pa', type: 'feature', value: 'auto',
> +       description: 'PulseAudio sound support')
> +
>  option('vhost_user_blk_server', type: 'feature', value: 'auto',
>         description: 'build vhost-user-blk server')
>  option('virtfs', type: 'feature', value: 'auto',
> --
> 2.31.1
>
>
>
>

-- 
Marc-André Lureau

Reply via email to