mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/virt-viewer
synced 2026-01-05 07:16:48 +00:00
Most of this patch consists in code being shuffled around to fit the expected flow while using the new APIs. I tried my best to make this patch the less intrusive as possible. Main changes are: - Updated build requirements * glib version 2.38 * gtk+ version 3.10 * gio - VirtViewerApp is now a subclass of GtkApplication. Some mainloop calls were replaced: * gtk_main() -> g_application_run() * gtk_quit() -> g_application_quit() - Unified command line option handling. The logic has moved from the main functions and split in common options, and specific ones for each application. With this, the main functions were highly simplified, and now basically responsible for instantiating the App object and running the main loop. - All Window objects must be associated with the Application. With this, there is no need to emit our own 'window-added'/'window- removed' signals, as those will be emited by GtkApplication whenever gtk_application_add_window() and gtk_application_remove_window() are called. Also, 'window-removed' was not being used anywhere. Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
259 lines
8.3 KiB
Plaintext
259 lines
8.3 KiB
Plaintext
|
|
AC_INIT([virt-viewer],[3.0])
|
|
AC_CONFIG_SRCDIR(src/virt-viewer-main.c)
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
AC_CONFIG_AUX_DIR([build-aux])
|
|
AC_CONFIG_HEADERS([config.h])
|
|
dnl Make automake keep quiet about wildcards & other GNUmake-isms
|
|
AM_INIT_AUTOMAKE([subdir-objects -Wno-portability])
|
|
AC_CANONICAL_HOST
|
|
|
|
# Use the silent-rules feature when possible.
|
|
m4_ifndef([AM_SILENT_RULES], [m4_define([AM_SILENT_RULES],[])])
|
|
AM_SILENT_RULES([yes])
|
|
|
|
GLIB2_REQUIRED="2.38.0"
|
|
LIBXML2_REQUIRED="2.6.0"
|
|
LIBVIRT_REQUIRED="0.10.0"
|
|
GTK_REQUIRED="3.10"
|
|
GTK_VNC_REQUIRED="0.4.0"
|
|
SPICE_GTK_REQUIRED="0.30"
|
|
SPICE_PROTOCOL_REQUIRED="0.12.7"
|
|
GOVIRT_REQUIRED="0.3.2"
|
|
|
|
AC_SUBST([GLIB2_REQUIRED])
|
|
AC_SUBST([LIBXML2_REQUIRED])
|
|
AC_SUBST([LIBVIRT_REQUIRED])
|
|
AC_SUBST([GTK_REQUIRED])
|
|
AC_SUBST([GTK_VNC_REQUIRED])
|
|
AC_SUBST([SPICE_GTK_REQUIRED])
|
|
AC_SUBST([SPICE_PROTOCOL_REQUIRED])
|
|
AC_SUBST([GOVIRT_REQUIRED])
|
|
|
|
AC_MSG_CHECKING([for native Win32])
|
|
case "$host_os" in
|
|
*mingw*|*cygwin*)
|
|
os_win32=yes
|
|
case "$host" in
|
|
amd64*|x86_64*)
|
|
WIXL_ARCH="x64"
|
|
;;
|
|
*)
|
|
WIXL_ARCH="x86"
|
|
;;
|
|
esac
|
|
AC_SUBST(WIXL_ARCH)
|
|
;;
|
|
*)
|
|
os_win32=no
|
|
;;
|
|
esac
|
|
AC_MSG_RESULT([$os_win32])
|
|
AM_CONDITIONAL([OS_WIN32],[test "$os_win32" = "yes"])
|
|
|
|
AC_PROG_CC
|
|
AM_PROG_CC_C_O
|
|
LT_INIT
|
|
|
|
AC_CHECK_PROGS(ICOTOOL, [icotool], [icotool])
|
|
|
|
AS_IF([test "x$os_win32" = "xyes"], [
|
|
AC_CHECK_TOOL(WINDRES, [windres])
|
|
|
|
if test -z "$WINDRES" ; then
|
|
AC_MSG_ERROR("windres is required to compile virt-viewer on this platform")
|
|
fi
|
|
])
|
|
|
|
AC_CONFIG_LIBOBJ_DIR([src])
|
|
|
|
AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions])
|
|
|
|
# Autoconf 2.61a.99 and earlier don't support linking a file only
|
|
# in VPATH builds. But since GNUmakefile is for maintainer use
|
|
# only, it does not matter if we skip the link with older autoconf.
|
|
# Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH
|
|
# builds, so use a shell variable to bypass this.
|
|
GNUmakefile=GNUmakefile
|
|
m4_if(m4_version_compare([2.61a.100],
|
|
m4_defn([m4_PACKAGE_VERSION])), [1], [],
|
|
[AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [],
|
|
[GNUmakefile=$GNUmakefile])])
|
|
|
|
VIRT_VIEWER_COMPILE_WARNINGS(maximum)
|
|
|
|
GETTEXT_PACKAGE=virt-viewer
|
|
AC_SUBST(GETTEXT_PACKAGE)
|
|
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],"$GETTEXT_PACKAGE", [GETTEXT package name])
|
|
|
|
AM_GLIB_GNU_GETTEXT
|
|
IT_PROG_INTLTOOL([0.35.0])
|
|
|
|
PKG_PROG_PKG_CONFIG
|
|
GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
|
|
AC_SUBST(GLIB_MKENUMS)
|
|
|
|
PKG_CHECK_MODULES(GLIB2, glib-2.0 >= $GLIB2_REQUIRED gio-2.0 gthread-2.0 gmodule-export-2.0)
|
|
PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= $LIBXML2_REQUIRED)
|
|
|
|
AC_ARG_WITH([libvirt],
|
|
AS_HELP_STRING([--without-libvirt], [Ignore presence of libvirt and disable it]))
|
|
|
|
AS_IF([test "x$with_libvirt" != "xno" && test "x$with_libvirt" != "xyes"],
|
|
[PKG_CHECK_EXISTS([libvirt >= $LIBVIRT_REQUIRED],
|
|
[with_libvirt=yes], [with_libvirt=no])])
|
|
|
|
AS_IF([test "x$with_libvirt" = "xyes"],
|
|
[PKG_CHECK_MODULES(LIBVIRT, [libvirt >= $LIBVIRT_REQUIRED])]
|
|
[AC_DEFINE([HAVE_LIBVIRT], 1, [Have libvirt?])]
|
|
)
|
|
AM_CONDITIONAL([HAVE_LIBVIRT], [test "x$with_libvirt" = "xyes"])
|
|
|
|
old_LIBS=$LIBS
|
|
LIBS=$LIBVIRT_LIBS
|
|
# virDomainOpenGraphicsFD was introduced in libvirt 1.2.8
|
|
AC_CHECK_LIB([virt],
|
|
[virDomainOpenGraphicsFD],
|
|
[AC_DEFINE([HAVE_VIR_DOMAIN_OPEN_GRAPHICS_FD], 1, [Have virDomainOpenGraphicsFD?])])
|
|
LIBS=$old_LIBS
|
|
|
|
PKG_CHECK_MODULES(GTK, gtk+-3.0 >= $GTK_REQUIRED)
|
|
|
|
AC_ARG_WITH([gtk-vnc],
|
|
AS_HELP_STRING([--without-gtk-vnc], [Ignore presence of gtk-vnc and disable it]))
|
|
|
|
AS_IF([test "x$with_gtk_vnc" != "xno" && test "x$with_gtk_vnc" != "xyes"],
|
|
[PKG_CHECK_EXISTS([gtk-vnc-2.0 >= $GTK_VNC_REQUIRED],
|
|
[with_gtk_vnc=yes], [with_gtk_vnc=no])])
|
|
|
|
AS_IF([test "x$with_gtk_vnc" = "xyes"],
|
|
[PKG_CHECK_MODULES(GTK_VNC, [gtk-vnc-2.0 >= $GTK_VNC_REQUIRED])]
|
|
[AC_DEFINE([HAVE_GTK_VNC], 1, [Have gtk-vnc?])]
|
|
)
|
|
AM_CONDITIONAL([HAVE_GTK_VNC], [test "x$with_gtk_vnc" = "xyes"])
|
|
|
|
AC_ARG_WITH([spice-gtk],
|
|
AS_HELP_STRING([--without-spice-gtk], [Ignore presence of spice-gtk and disable it]))
|
|
|
|
AS_IF([test "x$with_spice_gtk" != "xno" && test "x$with_spice_gtk" != "xyes"],
|
|
[PKG_CHECK_EXISTS([spice-client-gtk-3.0 >= $SPICE_GTK_REQUIRED
|
|
spice-controller spice-protocol >= $SPICE_PROTOCOL_REQUIRED],
|
|
[with_spice_gtk=yes], [with_spice_gtk=no])])
|
|
|
|
AS_IF([test "x$with_spice_gtk" = "xyes"],
|
|
[PKG_CHECK_MODULES(SPICE_GTK, [spice-client-gtk-3.0 >= $SPICE_GTK_REQUIRED])]
|
|
[PKG_CHECK_MODULES(SPICE_CONTROLLER, [spice-controller])]
|
|
[PKG_CHECK_MODULES(SPICE_PROTOCOL, [spice-protocol >= $SPICE_PROTOCOL_REQUIRED])]
|
|
[AC_DEFINE([HAVE_SPICE_GTK], 1, [Have spice-gtk?])]
|
|
)
|
|
AM_CONDITIONAL([HAVE_SPICE_GTK], [test "x$with_spice_gtk" = "xyes"])
|
|
|
|
AC_ARG_WITH([ovirt],
|
|
AS_HELP_STRING([--without-ovirt], [Ignore presence of librest and disable oVirt support]))
|
|
|
|
AS_IF([test "x$with_ovirt" != "xno" && test "x$with_ovirt" != "xyes"],
|
|
[PKG_CHECK_EXISTS([govirt-1.0 >= $GOVIRT_REQUIRED],
|
|
[with_ovirt=yes], [with_ovirt=no])])
|
|
|
|
AS_IF([test "x$with_ovirt" = "xyes"],
|
|
[PKG_CHECK_MODULES([OVIRT], [govirt-1.0 >= $GOVIRT_REQUIRED])]
|
|
[AC_DEFINE([HAVE_OVIRT], 1, [Have libgovirt?])]
|
|
[SAVED_CFLAGS="$CFLAGS"
|
|
SAVED_LIBS="$LIBS"
|
|
CFLAGS="$OVIRT_CFLAGS"
|
|
LIBS="$OVIRT_LIBS"
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <govirt/govirt.h>]],
|
|
[static int err = OVIRT_REST_CALL_ERROR_CANCELLED;
|
|
void *fun = rest_proxy_auth_cancel;])],
|
|
[AC_DEFINE([HAVE_OVIRT_CANCEL], 1, [Have rest_proxy_auth_cancel and OVIRT_REST_CALL_ERROR_CANCELLED?])],
|
|
[])
|
|
CFLAGS="$SAVED_CFLAGS"
|
|
LIBS="$SAVED_LIBS"]
|
|
)
|
|
AM_CONDITIONAL([HAVE_OVIRT], [test "x$with_ovirt" = "xyes"])
|
|
|
|
dnl Decide if this platform can support the SSH tunnel feature.
|
|
AC_CHECK_HEADERS([sys/socket.h sys/un.h windows.h])
|
|
AC_CHECK_FUNCS([fork socketpair])
|
|
|
|
|
|
if test "x$with_gtk_vnc" != "xyes" && test "x$with_spice_gtk" != "xyes"; then
|
|
AC_MSG_ERROR([At least one of spice or vnc must be used])
|
|
fi
|
|
|
|
AC_ARG_WITH([osid],
|
|
AS_HELP_STRING([--with-osid=id], [Set OS ID for use in .vv files]))
|
|
if test -n "$with_osid"; then
|
|
AC_DEFINE_UNQUOTED([REMOTE_VIEWER_OS_ID], "$with_osid", [OS ID for this build])
|
|
fi
|
|
|
|
AC_ARG_WITH([buildid],
|
|
AS_HELP_STRING([--with-buildid=id], [Set additional build version details]),
|
|
[buildid="$with_buildid"], [buildid="0"])
|
|
|
|
if test "x$buildid" != "x0"; then
|
|
AC_DEFINE_UNQUOTED([BUILDID], "-$buildid", [Build version details])
|
|
AC_SUBST([BUILDID], "-$buildid")
|
|
else
|
|
AC_DEFINE_UNQUOTED([BUILDID], "", [Build version details])
|
|
fi
|
|
|
|
major=`echo $PACKAGE_VERSION | cut -d. -f1`
|
|
minor=`echo $PACKAGE_VERSION | cut -d. -f2`
|
|
WINDOWS_PRODUCTVERSION="$major.$minor.$buildid"
|
|
AC_SUBST([WINDOWS_PRODUCTVERSION])
|
|
|
|
|
|
AC_PATH_PROG(UPDATE_MIME_DATABASE, update-mime-database, no)
|
|
|
|
AC_ARG_ENABLE(update-mimedb,
|
|
AS_HELP_STRING([--disable-update-mimedb],
|
|
[disable the update-mime-database after install [default=no]]),,
|
|
enable_update_mimedb=yes)
|
|
AM_CONDITIONAL(ENABLE_UPDATE_MIMEDB, test x$enable_update_mimedb = xyes)
|
|
|
|
|
|
AC_CONFIG_FILES([
|
|
Makefile
|
|
data/Makefile
|
|
data/adwaita-icons-needed.wxi
|
|
data/virt-viewer.wxs
|
|
data/virt-viewer.nsis
|
|
data/virt-viewer-debug.nsis
|
|
icons/Makefile
|
|
icons/16x16/Makefile
|
|
icons/22x22/Makefile
|
|
icons/24x24/Makefile
|
|
icons/32x32/Makefile
|
|
icons/48x48/Makefile
|
|
icons/256x256/Makefile
|
|
man/Makefile
|
|
mingw-virt-viewer.spec
|
|
po/Makefile.in
|
|
src/Makefile
|
|
src/virt-viewer.rc
|
|
virt-viewer.spec
|
|
])
|
|
AC_OUTPUT
|
|
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([Configuration summary])
|
|
AC_MSG_NOTICE([=====================])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([ Libraries:])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([ GLIB2: $GLIB2_CFLAGS $GLIB2_LIBS])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([ GTK: $GTK_CFLAGS $GTK_LIBS])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([ GTK_VNC: $GTK_VNC_CFLAGS $GTK_VNC_LIBS])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([ SPICE_GTK: $SPICE_GTK_CFLAGS $SPICE_GTK_LIBS])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([ LIBXML2: $LIBXML2_CFLAGS $LIBXML2_LIBS])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([ LIBVIRT: $LIBVIRT_CFLAGS $LIBVIRT_LIBS])
|
|
AC_MSG_NOTICE([])
|
|
AC_MSG_NOTICE([ OVIRT: $OVIRT_CFLAGS $OVIRT_LIBS])
|
|
AC_MSG_NOTICE([])
|