[Spice-devel] Don't build libspice-client-gtk if configured --without-gtk

Submitted by Benjamin Gilbert on Feb. 4, 2015, 8:46 a.m.

Details

Message ID 1423039608-31498-1-git-send-email-bgilbert@cs.cmu.edu
State New
Headers show

Not browsing as part of any series.

Commit Message

Benjamin Gilbert Feb. 4, 2015, 8:46 a.m.
libspice-client-glib is useful as a client library on platforms that
don't support GTK.
---
 Makefile.am      |  5 ++++-
 configure.ac     | 14 ++++++++------
 gtk/Makefile.am  | 14 ++++++++++++--
 vapi/Makefile.am |  7 +++++--
 4 files changed, 29 insertions(+), 11 deletions(-)

Patch hide | download patch | download mbox

diff --git a/Makefile.am b/Makefile.am
index 8ac2028..e559c4d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -16,9 +16,12 @@  endif
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA =					\
 	spice-client-glib-2.0.pc			\
-	spice-client-gtk-$(SPICE_GTK_API_VERSION).pc	\
 	$(NULL)
 
+if WITH_GTK
+pkgconfig_DATA += spice-client-gtk-$(SPICE_GTK_API_VERSION).pc
+endif
+
 if WITH_CONTROLLER
 pkgconfig_DATA += spice-controller.pc
 endif
diff --git a/configure.ac b/configure.ac
index 9b420a3..5146c72 100644
--- a/configure.ac
+++ b/configure.ac
@@ -158,13 +158,13 @@  AC_SUBST([SASL_LIBS])
 
 AC_MSG_CHECKING([which gtk+ version to compile against])
 AC_ARG_WITH([gtk],
-  [AS_HELP_STRING([--with-gtk=@<:@2.0/3.0@:>@],[which gtk+ version to compile against @<:@default=3.0@:>@])],
+  [AS_HELP_STRING([--with-gtk=@<:@2.0/3.0/no@:>@],[which gtk+ version to compile against @<:@default=3.0@:>@])],
   [case "$with_gtk" in
-     2.0|3.0) ;;
+     2.0|3.0) AC_MSG_RESULT([$with_gtk]) ;;
+     no) AC_MSG_RESULT([none]) ;;
      *) AC_MSG_ERROR([invalid gtk version specified]) ;;
    esac],
   [with_gtk=3.0])
-AC_MSG_RESULT([$with_gtk])
 
 case "$with_gtk" in
   2.0) GTK_API_VERSION=2.0
@@ -180,10 +180,12 @@  esac
 AC_SUBST([GTK_API_VERSION])
 AC_SUBST([GTK_REQUIRED])
 AC_SUBST([SPICE_GTK_API_VERSION])
+AM_CONDITIONAL([WITH_GTK],[test "$with_gtk" != "no"])
 AM_CONDITIONAL([HAVE_GTK_2],[test "$with_gtk" = "2.0"])
 AM_CONDITIONAL([HAVE_GTK_3],[test "$with_gtk" = "3.0"])
 
-PKG_CHECK_MODULES(GTK, gtk+-$GTK_API_VERSION >= $GTK_REQUIRED)
+AS_IF([test "x$with_gtk" != "xno"],
+      [PKG_CHECK_MODULES(GTK, gtk+-$GTK_API_VERSION >= $GTK_REQUIRED)])
 AC_SUBST(GTK_CFLAGS)
 AC_SUBST(GTK_LIBS)
 SPICE_GTK_REQUIRES="${SPICE_GTK_REQUIRES} gtk+-$GTK_API_VERSION >= $GTK_REQUIRED"
@@ -599,7 +601,7 @@  AC_ARG_WITH([python],
    yes|no|auto) with_python="$withval";;
    *) AC_MSG_ERROR([bad value $withval for python option]) ;;
    esac],
-  [AS_IF([test "$with_gtk" = "3.0" || test "x$os_win32" = "xyes"],
+  [AS_IF([test "$with_gtk" != "2.0" || test "x$os_win32" = "xyes"],
          [with_python=no],[with_python=auto])]
 )
 
@@ -758,8 +760,8 @@  AC_MSG_NOTICE([
         prefix:                   ${prefix}
         c compiler:               ${CC}
         Target:                   ${red_target}
-        Gtk:                      $GTK_API_VERSION
 
+        Gtk:                      ${with_gtk}
         Coroutine:                ${with_coroutine}
         Audio:                    ${with_audio}
         SASL support:             ${enable_sasl}
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 6003793..7728fec 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -45,7 +45,10 @@  EXTRA_DIST =					\
 
 DISTCLEANFILES = spice-version.h
 
-bin_PROGRAMS = spicy spicy-stats spicy-screenshot
+bin_PROGRAMS = spicy-stats spicy-screenshot
+if WITH_GTK
+bin_PROGRAMS += spicy
+endif
 if WITH_POLKIT
 acldir = $(ACL_HELPER_DIR)
 acl_PROGRAMS = spice-client-glib-usb-acl-helper
@@ -53,11 +56,13 @@  endif
 
 lib_LTLIBRARIES = libspice-client-glib-2.0.la
 
+if WITH_GTK
 if HAVE_GTK_2
 lib_LTLIBRARIES += libspice-client-gtk-2.0.la
 else
 lib_LTLIBRARIES += libspice-client-gtk-3.0.la
 endif
+endif
 
 if HAVE_LD_VERSION_SCRIPT
 GLIB_SYMBOLS_LDFLAGS = -Wl,--version-script=${srcdir}/map-file
@@ -157,6 +162,7 @@  SPICE_GTK_SOURCES_COMMON +=		\
 	$(NULL)
 endif
 
+if WITH_GTK
 if HAVE_GTK_2
 libspice_client_gtk_2_0_la_DEPEDENCIES = $(GTK_SYMBOLS_FILE)
 libspice_client_gtk_2_0_la_LDFLAGS = $(SPICE_GTK_LDFLAGS_COMMON)
@@ -171,7 +177,6 @@  libspice_client_gtk_3_0_la_SOURCES = $(SPICE_GTK_SOURCES_COMMON)
 nodist_libspice_client_gtk_3_0_la_SOURCES = $(nodist_SPICE_GTK_SOURCES_COMMON)
 endif
 
-
 libspice_client_gtkincludedir = $(includedir)/spice-client-gtk-$(SPICE_GTK_API_VERSION)
 libspice_client_gtkinclude_HEADERS =	\
 	spice-gtk-session.h		\
@@ -183,6 +188,7 @@  libspice_client_gtkinclude_HEADERS =	\
 nodist_libspice_client_gtkinclude_HEADERS =	\
 	spice-widget-enums.h			\
 	$(NULL)
+endif
 
 libspice_client_glib_2_0_la_DEPENDENCIES = $(GLIB_SYMBOLS_FILE)
 
@@ -449,11 +455,13 @@  spicy_stats_LDADD =				\
 
 $(libspice_client_glib_2_0_la_SOURCES): spice-glib-enums.h spice-marshal.h
 
+if WITH_GTK
 if HAVE_GTK_2
 $(libspice_client_gtk_2_0_la_SOURCES): spice-glib-enums.h spice-widget-enums.h
 else
 $(libspice_client_gtk_3_0_la_SOURCES): spice-glib-enums.h spice-widget-enums.h
 endif
+endif
 
 spice-marshal.c: spice-marshal.h
 spice-glib-enums.c: spice-glib-enums.h
@@ -643,6 +651,7 @@  SpiceClientGLib_2_0_gir_EXPORT_PACKAGES = spice-client-glib-2.0
 SpiceClientGLib_2_0_gir_SCANNERFLAGS = --c-include="spice-client.h"
 INTROSPECTION_GIRS += SpiceClientGLib-2.0.gir
 
+if WITH_GTK
 if HAVE_GTK_2
 SpiceClientGtk-2.0.gir: libspice-client-gtk-2.0.la SpiceClientGLib-2.0.gir
 SpiceClientGtk_2_0_gir_INCLUDES = GObject-2.0 Gtk-2.0 SpiceClientGLib-2.0
@@ -661,6 +670,7 @@  SpiceClientGtk_3_0_gir_EXPORT_PACKAGES = spice-client-gtk-3.0
 SpiceClientGtk_3_0_gir_SCANNERFLAGS = --c-include="spice-widget.h"
 endif
 INTROSPECTION_GIRS += SpiceClientGtk-$(SPICE_GTK_API_VERSION).gir
+endif
 
 girdir = $(datadir)/gir-1.0
 gir_DATA = $(INTROSPECTION_GIRS)
diff --git a/vapi/Makefile.am b/vapi/Makefile.am
index ad43d69..5325aaa 100644
--- a/vapi/Makefile.am
+++ b/vapi/Makefile.am
@@ -4,13 +4,16 @@  CLEANFILES =
 vapidir = $(datadir)/vala/vapi
 vapi_DATA =						\
 	spice-client-glib-2.0.vapi			\
-	spice-client-gtk-$(SPICE_GTK_API_VERSION).vapi	\
 	$(NULL)
 dist_vapi_DATA =					\
-	spice-client-gtk-$(SPICE_GTK_API_VERSION).deps	\
 	spice-client-glib-2.0.deps			\
 	$(NULL)
 
+if WITH_GTK
+vapi_DATA += spice-client-gtk-$(SPICE_GTK_API_VERSION).vapi
+dist_vapi_DATA += spice-client-gtk-$(SPICE_GTK_API_VERSION).deps
+endif
+
 EXTRA_DIST =						\
 	spice-client-gtk-2.0.deps			\
 	spice-client-gtk-3.0.deps			\

Comments

Hi

Documentation fails to build, I think it should be disabled if --without-gtk:

+++ b/configure.ac
@@ -175,6 +175,9 @@ case "$with_gtk" in
        GTK_REQUIRED=2.91.3
        SPICE_GTK_API_VERSION=3.0
        ;;
+  no)
+       AS_IF([test x$enable_gtk_doc = xyes],
+             [AC_MSG_ERROR([Without GTK+, gtk-doc must be disabled])])
 esac

I can apply with this change if you agree.

Are you working on a new frontend? (someone started a Qt one some time ago)

On Wed, Feb 4, 2015 at 9:46 AM, Benjamin Gilbert <bgilbert@cs.cmu.edu> wrote:
> libspice-client-glib is useful as a client library on platforms that
> don't support GTK.
> ---
>  Makefile.am      |  5 ++++-
>  configure.ac     | 14 ++++++++------
>  gtk/Makefile.am  | 14 ++++++++++++--
>  vapi/Makefile.am |  7 +++++--
>  4 files changed, 29 insertions(+), 11 deletions(-)
>
> diff --git a/Makefile.am b/Makefile.am
> index 8ac2028..e559c4d 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -16,9 +16,12 @@ endif
>  pkgconfigdir = $(libdir)/pkgconfig
>  pkgconfig_DATA =                                       \
>         spice-client-glib-2.0.pc                        \
> -       spice-client-gtk-$(SPICE_GTK_API_VERSION).pc    \
>         $(NULL)
>
> +if WITH_GTK
> +pkgconfig_DATA += spice-client-gtk-$(SPICE_GTK_API_VERSION).pc
> +endif
> +
>  if WITH_CONTROLLER
>  pkgconfig_DATA += spice-controller.pc
>  endif
> diff --git a/configure.ac b/configure.ac
> index 9b420a3..5146c72 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -158,13 +158,13 @@ AC_SUBST([SASL_LIBS])
>
>  AC_MSG_CHECKING([which gtk+ version to compile against])
>  AC_ARG_WITH([gtk],
> -  [AS_HELP_STRING([--with-gtk=@<:@2.0/3.0@:>@],[which gtk+ version to compile against @<:@default=3.0@:>@])],
> +  [AS_HELP_STRING([--with-gtk=@<:@2.0/3.0/no@:>@],[which gtk+ version to compile against @<:@default=3.0@:>@])],
>    [case "$with_gtk" in
> -     2.0|3.0) ;;
> +     2.0|3.0) AC_MSG_RESULT([$with_gtk]) ;;
> +     no) AC_MSG_RESULT([none]) ;;
>       *) AC_MSG_ERROR([invalid gtk version specified]) ;;
>     esac],
>    [with_gtk=3.0])
> -AC_MSG_RESULT([$with_gtk])
>
>  case "$with_gtk" in
>    2.0) GTK_API_VERSION=2.0
> @@ -180,10 +180,12 @@ esac
>  AC_SUBST([GTK_API_VERSION])
>  AC_SUBST([GTK_REQUIRED])
>  AC_SUBST([SPICE_GTK_API_VERSION])
> +AM_CONDITIONAL([WITH_GTK],[test "$with_gtk" != "no"])
>  AM_CONDITIONAL([HAVE_GTK_2],[test "$with_gtk" = "2.0"])
>  AM_CONDITIONAL([HAVE_GTK_3],[test "$with_gtk" = "3.0"])
>
> -PKG_CHECK_MODULES(GTK, gtk+-$GTK_API_VERSION >= $GTK_REQUIRED)
> +AS_IF([test "x$with_gtk" != "xno"],
> +      [PKG_CHECK_MODULES(GTK, gtk+-$GTK_API_VERSION >= $GTK_REQUIRED)])
>  AC_SUBST(GTK_CFLAGS)
>  AC_SUBST(GTK_LIBS)
>  SPICE_GTK_REQUIRES="${SPICE_GTK_REQUIRES} gtk+-$GTK_API_VERSION >= $GTK_REQUIRED"
> @@ -599,7 +601,7 @@ AC_ARG_WITH([python],
>     yes|no|auto) with_python="$withval";;
>     *) AC_MSG_ERROR([bad value $withval for python option]) ;;
>     esac],
> -  [AS_IF([test "$with_gtk" = "3.0" || test "x$os_win32" = "xyes"],
> +  [AS_IF([test "$with_gtk" != "2.0" || test "x$os_win32" = "xyes"],
>           [with_python=no],[with_python=auto])]
>  )
>
> @@ -758,8 +760,8 @@ AC_MSG_NOTICE([
>          prefix:                   ${prefix}
>          c compiler:               ${CC}
>          Target:                   ${red_target}
> -        Gtk:                      $GTK_API_VERSION
>
> +        Gtk:                      ${with_gtk}
>          Coroutine:                ${with_coroutine}
>          Audio:                    ${with_audio}
>          SASL support:             ${enable_sasl}
> diff --git a/gtk/Makefile.am b/gtk/Makefile.am
> index 6003793..7728fec 100644
> --- a/gtk/Makefile.am
> +++ b/gtk/Makefile.am
> @@ -45,7 +45,10 @@ EXTRA_DIST =                                 \
>
>  DISTCLEANFILES = spice-version.h
>
> -bin_PROGRAMS = spicy spicy-stats spicy-screenshot
> +bin_PROGRAMS = spicy-stats spicy-screenshot
> +if WITH_GTK
> +bin_PROGRAMS += spicy
> +endif
>  if WITH_POLKIT
>  acldir = $(ACL_HELPER_DIR)
>  acl_PROGRAMS = spice-client-glib-usb-acl-helper
> @@ -53,11 +56,13 @@ endif
>
>  lib_LTLIBRARIES = libspice-client-glib-2.0.la
>
> +if WITH_GTK
>  if HAVE_GTK_2
>  lib_LTLIBRARIES += libspice-client-gtk-2.0.la
>  else
>  lib_LTLIBRARIES += libspice-client-gtk-3.0.la
>  endif
> +endif
>
>  if HAVE_LD_VERSION_SCRIPT
>  GLIB_SYMBOLS_LDFLAGS = -Wl,--version-script=${srcdir}/map-file
> @@ -157,6 +162,7 @@ SPICE_GTK_SOURCES_COMMON +=         \
>         $(NULL)
>  endif
>
> +if WITH_GTK
>  if HAVE_GTK_2
>  libspice_client_gtk_2_0_la_DEPEDENCIES = $(GTK_SYMBOLS_FILE)
>  libspice_client_gtk_2_0_la_LDFLAGS = $(SPICE_GTK_LDFLAGS_COMMON)
> @@ -171,7 +177,6 @@ libspice_client_gtk_3_0_la_SOURCES = $(SPICE_GTK_SOURCES_COMMON)
>  nodist_libspice_client_gtk_3_0_la_SOURCES = $(nodist_SPICE_GTK_SOURCES_COMMON)
>  endif
>
> -
>  libspice_client_gtkincludedir = $(includedir)/spice-client-gtk-$(SPICE_GTK_API_VERSION)
>  libspice_client_gtkinclude_HEADERS =   \
>         spice-gtk-session.h             \
> @@ -183,6 +188,7 @@ libspice_client_gtkinclude_HEADERS =        \
>  nodist_libspice_client_gtkinclude_HEADERS =    \
>         spice-widget-enums.h                    \
>         $(NULL)
> +endif
>
>  libspice_client_glib_2_0_la_DEPENDENCIES = $(GLIB_SYMBOLS_FILE)
>
> @@ -449,11 +455,13 @@ spicy_stats_LDADD =                               \
>
>  $(libspice_client_glib_2_0_la_SOURCES): spice-glib-enums.h spice-marshal.h
>
> +if WITH_GTK
>  if HAVE_GTK_2
>  $(libspice_client_gtk_2_0_la_SOURCES): spice-glib-enums.h spice-widget-enums.h
>  else
>  $(libspice_client_gtk_3_0_la_SOURCES): spice-glib-enums.h spice-widget-enums.h
>  endif
> +endif
>
>  spice-marshal.c: spice-marshal.h
>  spice-glib-enums.c: spice-glib-enums.h
> @@ -643,6 +651,7 @@ SpiceClientGLib_2_0_gir_EXPORT_PACKAGES = spice-client-glib-2.0
>  SpiceClientGLib_2_0_gir_SCANNERFLAGS = --c-include="spice-client.h"
>  INTROSPECTION_GIRS += SpiceClientGLib-2.0.gir
>
> +if WITH_GTK
>  if HAVE_GTK_2
>  SpiceClientGtk-2.0.gir: libspice-client-gtk-2.0.la SpiceClientGLib-2.0.gir
>  SpiceClientGtk_2_0_gir_INCLUDES = GObject-2.0 Gtk-2.0 SpiceClientGLib-2.0
> @@ -661,6 +670,7 @@ SpiceClientGtk_3_0_gir_EXPORT_PACKAGES = spice-client-gtk-3.0
>  SpiceClientGtk_3_0_gir_SCANNERFLAGS = --c-include="spice-widget.h"
>  endif
>  INTROSPECTION_GIRS += SpiceClientGtk-$(SPICE_GTK_API_VERSION).gir
> +endif
>
>  girdir = $(datadir)/gir-1.0
>  gir_DATA = $(INTROSPECTION_GIRS)
> diff --git a/vapi/Makefile.am b/vapi/Makefile.am
> index ad43d69..5325aaa 100644
> --- a/vapi/Makefile.am
> +++ b/vapi/Makefile.am
> @@ -4,13 +4,16 @@ CLEANFILES =
>  vapidir = $(datadir)/vala/vapi
>  vapi_DATA =                                            \
>         spice-client-glib-2.0.vapi                      \
> -       spice-client-gtk-$(SPICE_GTK_API_VERSION).vapi  \
>         $(NULL)
>  dist_vapi_DATA =                                       \
> -       spice-client-gtk-$(SPICE_GTK_API_VERSION).deps  \
>         spice-client-glib-2.0.deps                      \
>         $(NULL)
>
> +if WITH_GTK
> +vapi_DATA += spice-client-gtk-$(SPICE_GTK_API_VERSION).vapi
> +dist_vapi_DATA += spice-client-gtk-$(SPICE_GTK_API_VERSION).deps
> +endif
> +
>  EXTRA_DIST =                                           \
>         spice-client-gtk-2.0.deps                       \
>         spice-client-gtk-3.0.deps                       \
> --
> 1.9.3
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
On 02/04/2015 06:53 AM, Marc-André Lureau wrote:
> +++ b/configure.ac
> @@ -175,6 +175,9 @@ case "$with_gtk" in
>          GTK_REQUIRED=2.91.3
>          SPICE_GTK_API_VERSION=3.0
>          ;;
> +  no)
> +       AS_IF([test x$enable_gtk_doc = xyes],
> +             [AC_MSG_ERROR([Without GTK+, gtk-doc must be disabled])])
>   esac

Works for me.

> Are you working on a new frontend?

I'm working on an Android viewer based on Iordan Iordanov's aSPICE.

--Benjamin Gilbert