On Fri, Apr 23, 2021 at 12:34 PM Gerd Hoffmann <[email protected]> wrote:

> When implementing spice vdagent protocol in qemu we only need the
> spice-protocol package for that, spice-server is not needed.  So
> go split those two build dependencies.
>
> Signed-off-by: Gerd Hoffmann <[email protected]>
> ---
>  configure   | 36 ++++++++++++++++++++++++++++++++----
>  meson.build |  4 ++++
>  2 files changed, 36 insertions(+), 4 deletions(-)
>
> diff --git a/configure b/configure
> index 4f374b48890e..e6f959da2347 100755
> --- a/configure
> +++ b/configure
> @@ -388,6 +388,7 @@ qom_cast_debug="yes"
>  trace_backends="log"
>  trace_file="trace"
>  spice="$default_feature"
> +spice_protocol="auto"
>  rbd="auto"
>  smartcard="$default_feature"
>  u2f="auto"
> @@ -1129,7 +1130,15 @@ for opt do
>    ;;
>    --disable-spice) spice="no"
>    ;;
> -  --enable-spice) spice="yes"
> +  --enable-spice)
> +      spice_protocol="yes"
> +      spice="yes"
> +  ;;
> +  --disable-spice-protocol)
> +      spice_protocol="no"
> +      spice="no"
> +  ;;
> +  --enable-spice-protocol) spice_protocol="yes"
>    ;;
>    --disable-libiscsi) libiscsi="disabled"
>    ;;
> @@ -1866,6 +1875,7 @@ disabled with --disable-FEATURE, default is enabled
> if available
>    vhost-user-blk-server    vhost-user-blk server support
>    vhost-vdpa      vhost-vdpa kernel backend support
>    spice           spice
> +  spice-protocol  spice-protocol
>    rbd             rados block device (rbd)
>    libiscsi        iscsi support
>    libnfs          nfs support
> @@ -4149,6 +4159,19 @@ fi
>
>  ##########################################
>  # spice probe
> +if test "$spice_protocol" != "no" ; then
> +  spice_protocol_cflags=$($pkg_config --cflags spice-protocol 2>/dev/null)
> +  if $pkg_config --atleast-version=0.12.3 spice-protocol; then
> +    spice_protocol="yes"
> +  else
> +    if test "$spice_protocol" = "yes" ; then
> +      feature_not_found "spice_protocol" \
> +          "Install spice-protocol(>=0.12.3) devel"
> +    fi
> +    spice_protocol="no"
> +  fi
> +fi
> +
>  if test "$spice" != "no" ; then
>    cat > $TMPC << EOF
>  #include <spice.h>
> @@ -4157,13 +4180,13 @@ EOF
>    spice_cflags=$($pkg_config --cflags spice-protocol spice-server
> 2>/dev/null)
>    spice_libs=$($pkg_config --libs spice-protocol spice-server 2>/dev/null)
>    if $pkg_config --atleast-version=0.12.5 spice-server && \
> -     $pkg_config --atleast-version=0.12.3 spice-protocol && \
> +     test "$spice_protocol" = "yes" && \
>       compile_prog "$spice_cflags" "$spice_libs" ; then
>      spice="yes"
>    else
>      if test "$spice" = "yes" ; then
>        feature_not_found "spice" \
> -          "Install spice-server(>=0.12.5) and spice-protocol(>=0.12.3)
> devel"
> +          "Install spice-server(>=0.12.5) devel"
>      fi
>      spice="no"
>    fi
> @@ -5807,9 +5830,14 @@ fi
>  if test "$posix_memalign" = "yes" ; then
>    echo "CONFIG_POSIX_MEMALIGN=y" >> $config_host_mak
>  fi
> +
> +if test "$spice_protocol" = "yes" ; then
> +  echo "CONFIG_SPICE_PROTOCOL=y" >> $config_host_mak
> +  echo "SPICE_PROTOCOL_CFLAGS=$spice_protocol_cflags" >> $config_host_mak
> +fi
>  if test "$spice" = "yes" ; then
>    echo "CONFIG_SPICE=y" >> $config_host_mak
> -  echo "SPICE_CFLAGS=$spice_cflags" >> $config_host_mak
> +  echo "SPICE_CFLAGS=$spice_cflags $spice_protocol_cflags" >>
> $config_host_mak
>    echo "SPICE_LIBS=$spice_libs" >> $config_host_mak
>  fi
>
> diff --git a/meson.build b/meson.build
> index c6f4b0cf5e8a..749259e7f29c 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -446,11 +446,15 @@ if 'CONFIG_LIBJACK' in config_host
>  endif
>  spice = not_found
>  spice_headers = not_found
> +spice_protocol = not_found
>  if 'CONFIG_SPICE' in config_host
>    spice = declare_dependency(compile_args:
> config_host['SPICE_CFLAGS'].split(),
>                               link_args: config_host['SPICE_LIBS'].split())
>    spice_headers = declare_dependency(compile_args:
> config_host['SPICE_CFLAGS'].split())
>  endif
> +if 'CONFIG_SPICE_PROTOCOL' in config_host
> +  spice_protocol = declare_dependency(compile_args:
> config_host['SPICE_PROTOCOL_CFLAGS'].split())
> +endif
>  rt = cc.find_library('rt', required: false)
>  libdl = not_found
>  if 'CONFIG_PLUGIN' in config_host
> --
> 2.30.2
>
>
We should be able to move more configure logic to meson.build, but for now:

Reviewed-by: Marc-André Lureau <[email protected]>

Reply via email to