[Spice-devel] [PATCH spice-gtk] Add a SPICE_GTK_CHECK_VERSION macro
Daniel P. Berrange
berrange at redhat.com
Mon Feb 24 06:11:00 PST 2014
On Mon, Feb 24, 2014 at 03:03:56PM +0100, Marc-André Lureau wrote:
> ---
> configure.ac | 10 ++++++
> doc/reference/spice-gtk-sections.txt | 4 +++
> gtk/Makefile.am | 4 +++
> gtk/spice-client.h | 1 +
> gtk/spice-version.h.in | 70 ++++++++++++++++++++++++++++++++++++
> 5 files changed, 89 insertions(+)
> create mode 100644 gtk/spice-version.h.in
>
> diff --git a/configure.ac b/configure.ac
> index 6e4b29a..192d748 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -75,6 +75,15 @@ AC_CONFIG_SUBDIRS([spice-common])
> COMMON_CFLAGS='-I ${top_srcdir}/spice-common/ -I ${top_srcdir}/spice-common/spice-protocol/'
> AC_SUBST(COMMON_CFLAGS)
>
> +SPICE_GTK_MAJOR_VERSION=`echo $PACKAGE_VERSION | cut -d. -f1`
> +SPICE_GTK_MINOR_VERSION=`echo $PACKAGE_VERSION | cut -d. -f2`
> +SPICE_GTK_MICRO_VERSION=`echo $PACKAGE_VERSION | cut -d. -f3 | cut -d- -f1`
> +[ "x$SPICE_GTK_MICRO_VERSION" = "x" ] && SPICE_GTK_MICRO_VERSION = 0
> +
> +AC_SUBST(SPICE_GTK_MAJOR_VERSION)
> +AC_SUBST(SPICE_GTK_MINOR_VERSION)
> +AC_SUBST(SPICE_GTK_MICRO_VERSION)
> +
> dnl =========================================================================
> dnl Chek optional features
>
> @@ -709,6 +718,7 @@ data/spicy.desktop.in
> data/spicy.nsis
> po/Makefile.in
> gtk/Makefile
> +gtk/spice-version.h
> gtk/controller/Makefile
> doc/Makefile
> doc/reference/Makefile
> diff --git a/doc/reference/spice-gtk-sections.txt b/doc/reference/spice-gtk-sections.txt
> index 08b1b4e..9232a23 100644
> --- a/doc/reference/spice-gtk-sections.txt
> +++ b/doc/reference/spice-gtk-sections.txt
> @@ -402,6 +402,10 @@ SpiceGtkBoxClass
> <FILE>spice-util</FILE>
> spice_util_set_debug
> spice_util_get_version_string
> +SPICE_GTK_CHECK_VERSION
> +SPICE_GTK_MAJOR_VERSION
> +SPICE_GTK_MICRO_VERSION
> +SPICE_GTK_MINOR_VERSION
> <SUBSECTION Private>
> SPICE_DEBUG
> spice_util_get_debug
> diff --git a/gtk/Makefile.am b/gtk/Makefile.am
> index 61ed88e..8a16120 100644
> --- a/gtk/Makefile.am
> +++ b/gtk/Makefile.am
> @@ -41,8 +41,11 @@ EXTRA_DIST = \
> spice-client-gtk-manual.defs \
> spice-client-gtk.override \
> spice-marshal.txt \
> + spice-version.h.in \
> $(NULL)
>
> +DISTCLEANFILES = spice-version.h
> +
> bin_PROGRAMS = spicy spicy-stats spicy-screenshot
> if WITH_POLKIT
> acldir = $(ACL_HELPER_DIR)
> @@ -290,6 +293,7 @@ libspice_client_glibinclude_HEADERS = \
> spice-channel.h \
> spice-util.h \
> spice-option.h \
> + spice-version.h \
> channel-cursor.h \
> channel-display.h \
> channel-inputs.h \
> diff --git a/gtk/spice-client.h b/gtk/spice-client.h
> index 975259a..98aaffe 100644
> --- a/gtk/spice-client.h
> +++ b/gtk/spice-client.h
> @@ -32,6 +32,7 @@
> #include "spice-channel.h"
> #include "spice-option.h"
> #include "spice-uri.h"
> +#include "spice-version.h"
>
> #include "channel-main.h"
> #include "channel-display.h"
> diff --git a/gtk/spice-version.h.in b/gtk/spice-version.h.in
> new file mode 100644
> index 0000000..8856914
> --- /dev/null
> +++ b/gtk/spice-version.h.in
> @@ -0,0 +1,70 @@
> +/* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */
> +/*
> + Copyright (C) 2014 Red Hat, Inc.
> +
> + This library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + This library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with this library; if not, see <http://www.gnu.org/licenses/>.
> +*/
> +#ifndef __SPICE_VERSION_H__
> +#define __SPICE_VERSION_H__
> +
> +/**
> + * SECTION:spice-version
> + * @short_description: Spice-Gtk version checking
> + *
> + * Spice-Gtk provides macros to check the version of the library
> + * at compile-time
> + */
> +
> +/**
> + * SPICE_GTK_MAJOR_VERSION:
> + *
> + * Spice-Gtk major version component (e.g. 1 if version is 1.2.3)
> + * Since: 0.24
> + */
> +#define SPICE_GTK_MAJOR_VERSION (@SPICE_GTK_MAJOR_VERSION@)
> +
> +/**
> + * SPICE_GTK_MINOR_VERSION:
> + *
> + * Spice-Gtk minor version component (e.g. 2 if version is 1.2.3)
> + * Since: 0.24
> + */
> +#define SPICE_GTK_MINOR_VERSION (@SPICE_GTK_MINOR_VERSION@)
> +
> +/**
> + * SPICE_GTK_MICRO_VERSION:
> + *
> + * Spice-Gtk micro version component (e.g. 3 if version is 1.2.3)
> + * Since: 0.24
> + */
> +#define SPICE_GTK_MICRO_VERSION (@SPICE_GTK_MICRO_VERSION@)
> +
> +/**
> + * SPICE_GTK_CHECK_VERSION:
> + * @major: required major version
> + * @minor: required minor version
> + * @micro: required micro version
> + *
> + * Compile-time version checking. Evaluates to %TRUE if the version
> + * of Spice-Gtk is greater than the required one.
> + * Since: 0.24
> + */
> +#define SPICE_GTK_CHECK_VERSION(major,minor,micro) \
Nitpick, perhaps nicer to have a space after each ','
> + (SPICE_GTK_MAJOR_VERSION > (major) || \
> + (SPICE_GTK_MAJOR_VERSION == (major) && SPICE_GTK_MINOR_VERSION >= (minor)) || \
> + (SPICE_GTK_MAJOR_VERSION == (major) && SPICE_GTK_MINOR_VERSION == (minor) && \
> + SPICE_GTK_MICRO_VERSION >= (micro)))
> +
> +
> +#endif /* __SPICE_VERSION_H__ */
ACK
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the Spice-devel
mailing list