diff mbox series

[v4,1/9] build: add separate spice-protocol config option

Message ID 20210423083351.2096734-2-kraxel@redhat.com
State New
Headers show
Series ui: add vdagent implementation and clipboard support. | expand

Commit Message

Gerd Hoffmann April 23, 2021, 8:33 a.m. UTC
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 <kraxel@redhat.com>
---
 configure   | 36 ++++++++++++++++++++++++++++++++----
 meson.build |  4 ++++
 2 files changed, 36 insertions(+), 4 deletions(-)

Comments

Marc-André Lureau April 27, 2021, 8:29 a.m. UTC | #1
On Fri, Apr 23, 2021 at 12:34 PM Gerd Hoffmann <kraxel@redhat.com> 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 <kraxel@redhat.com>
> ---
>  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 <marcandre.lureau@redhat.com>
diff mbox series

Patch

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