[Spice-devel] [PATCH vdagent 1/2] build: make GTK+ optional
Victor Toso
victortoso at redhat.com
Thu Mar 1 10:39:48 UTC 2018
On Thu, Mar 01, 2018 at 11:10:55AM +0100, Jakub Janků wrote:
> From: Jakub Janků <jjanku at redhat.com>
>
> Add --with-gtk configure option.
> If used, favor GTK+ over Xlib.
Looks good to me both patches.
I'll push early next week if no one complains about it.
Acked-by: Victor Toso <victortoso at redhat.com>
Cheers,
toso
> ---
> configure.ac | 13 ++++++++++++-
> src/vdagent/vdagent.c | 8 +++++++-
> src/vdagent/x11.c | 6 ++++++
> 3 files changed, 25 insertions(+), 2 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 1eb17a9..89f617c 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -75,6 +75,16 @@ if test "x$init_systemd" = "xyes"; then
> fi
> fi
>
> +AC_ARG_WITH([gtk],
> + [AS_HELP_STRING([--with-gtk], [Use GTK+ instead of Xlib])],
> + [],
> + [with_gtk="auto"])
> +if test "x$with_gtk" != "xno"; then
> + PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.10],
> + [AC_DEFINE([WITH_GTK], [1], [If defined, vdagent will favor GTK+ over Xlib])],
> + [AS_IF([test "x$with_gtk" = "xyes"], [AC_MSG_ERROR([GTK+ requested but not found])])])
> +fi
> +
> AC_ARG_ENABLE([pciaccess],
> [AS_HELP_STRING([--enable-pciaccess], [Enable libpciaccess use for auto generation of Xinerama xorg.conf (default: yes)])],
> [enable_pciaccess="$enableval"],
> @@ -86,7 +96,6 @@ AC_ARG_ENABLE([static-uinput],
> [enable_static_uinput="no"])
>
> PKG_CHECK_MODULES([GLIB2], [glib-2.0 >= 2.34])
> -PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.10])
> PKG_CHECK_MODULES(X, [xfixes xrandr >= 1.3 xinerama x11])
> PKG_CHECK_MODULES(SPICE, [spice-protocol >= 0.12.13])
> PKG_CHECK_MODULES(ALSA, [alsa >= 1.0.22])
> @@ -210,6 +219,8 @@ AC_MSG_NOTICE([
> install systemd service: ${init_systemd}
> udevdir: ${udevdir}
>
> + use GTK+: ${with_gtk}
> +
> Now type 'make' to build $PACKAGE
>
> ])
> diff --git a/src/vdagent/vdagent.c b/src/vdagent/vdagent.c
> index d86ee25..6bd52fa 100644
> --- a/src/vdagent/vdagent.c
> +++ b/src/vdagent/vdagent.c
> @@ -36,7 +36,9 @@
> #include <spice/vd_agent.h>
> #include <poll.h>
> #include <glib-unix.h>
> -#include <gtk/gtk.h>
> +#ifdef WITH_GTK
> +# include <gtk/gtk.h>
> +#endif
>
> #include "udscs.h"
> #include "vdagentd-proto.h"
> @@ -401,7 +403,9 @@ int main(int argc, char *argv[])
> g_option_context_set_summary(context,
> "\tSpice session guest agent: X11\n"
> "\tVersion: " VERSION);
> +#ifdef WITH_GTK
> g_option_context_add_group(context, gtk_get_option_group(FALSE));
> +#endif
> g_option_context_parse(context, &argc, &argv, &error);
> g_option_context_free(context);
>
> @@ -429,8 +433,10 @@ int main(int argc, char *argv[])
> if (do_daemonize)
> parent_socket = daemonize();
>
> +#ifdef WITH_GTK
> gdk_set_allowed_backends("x11");
> gtk_init(NULL, NULL);
> +#endif
>
> reconnect:
> if (version_mismatch) {
> diff --git a/src/vdagent/x11.c b/src/vdagent/x11.c
> index 9700847..e6c3e9e 100644
> --- a/src/vdagent/x11.c
> +++ b/src/vdagent/x11.c
> @@ -31,11 +31,17 @@
> Calling XPending when-ever we return to the mainloop also ensures any
> pending writes are flushed. */
>
> +#ifdef HAVE_CONFIG_H
> +# include <config.h>
> +#endif
> +
> #include <glib.h>
> +#ifdef WITH_GTK
> #include <gdk/gdk.h>
> #ifdef GDK_WINDOWING_X11
> #include <gdk/gdkx.h>
> #endif
> +#endif
> #include <stdlib.h>
> #include <limits.h>
> #include <string.h>
> --
> 2.14.3
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20180301/d7b265de/attachment-0001.sig>
More information about the Spice-devel
mailing list