summaryrefslogtreecommitdiff
path: root/libwnck
diff options
context:
space:
mode:
authorVincent Untz <vuntz@gnome.org>2011-01-20 01:55:03 +0100
committerVincent Untz <vuntz@gnome.org>2011-01-20 15:47:49 +0100
commit26500d170a6faa8fb4158bd0157763ed2a847bc0 (patch)
tree32367d674778956fad03633a1de81cdd23047ba2 /libwnck
parent48248f23e269baeec02a2dbb93a831627dc2dfec (diff)
downloadlibwnck-26500d170a6faa8fb4158bd0157763ed2a847bc0.tar.gz
core: Add version.h to provide macros to know libwnck version
Diffstat (limited to 'libwnck')
-rw-r--r--libwnck/Makefile.am4
-rw-r--r--libwnck/libwnck.h2
-rw-r--r--libwnck/version.h.in97
3 files changed, 102 insertions, 1 deletions
diff --git a/libwnck/Makefile.am b/libwnck/Makefile.am
index d2250a3..8f53ddd 100644
--- a/libwnck/Makefile.am
+++ b/libwnck/Makefile.am
@@ -36,7 +36,8 @@ wnck_built_installed_headers = wnck-enum-types.h
libwnckincludedir = $(includedir)/libwnck-3.0/libwnck
libwnckinclude_HEADERS = \
$(wnck_headers) \
- $(wnck_built_installed_headers)
+ $(wnck_built_installed_headers) \
+ version.h
# Sources that are relevant for introspection
wnck_sources = \
@@ -160,6 +161,7 @@ CLEANFILES = \
EXTRA_DIST = \
$(inlinepixbufs_SOURCES) \
+ version.h.in \
wnck-marshal.list
# Introspection
diff --git a/libwnck/libwnck.h b/libwnck/libwnck.h
index 3a7921a..1dd2d5d 100644
--- a/libwnck/libwnck.h
+++ b/libwnck/libwnck.h
@@ -38,6 +38,8 @@
#include <libwnck/window-action-menu.h>
#include <libwnck/util.h>
+#include <libwnck/version.h>
+
#include <libwnck/wnck-enum-types.h>
#undef __LIBWNCK_H_INSIDE__
diff --git a/libwnck/version.h.in b/libwnck/version.h.in
new file mode 100644
index 0000000..6e9dcc6
--- /dev/null
+++ b/libwnck/version.h.in
@@ -0,0 +1,97 @@
+/* version info */
+/* vim: set sw=2 et: */
+
+/*
+ * Copyright (C) 2011 Novell, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ * Vincent Untz <vuntz@gnome.org>
+ */
+
+/**
+ * SECTION:version
+ * @Short_description: variables and functions to check the libwnck version
+ * @stability: Unstable
+ *
+ * libwnck provides version information, primarily useful in configure checks
+ * for builds that have a configure script, and to write code against different
+ * versions of libwnck that do not provide the same API.
+ */
+
+#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION)
+#error "Only <libwnck/libwnck.h> can be included directly."
+#endif
+
+#ifndef WNCK_VERSION_H
+#define WNCK_VERSION_H
+
+/**
+ * WNCK_MAJOR_VERSION:
+ *
+ * Return value: the major version number of the libwnck library, from the
+ * headers used at application compile time, rather than from the library
+ * linked against at application run time.
+ * (e.g. in libwnck version 1.2.5 this is 1.)
+ *
+ * Since: 3.0
+ */
+#define WNCK_MAJOR_VERSION (@WNCK_MAJOR_VERSION@)
+
+/**
+ * WNCK_MINOR_VERSION:
+ *
+ * Return value: the minor version number of the libwnck library, from the
+ * headers used at application compile time, rather than from the library
+ * linked against at application run time.
+ * (e.g. in libwnck version 1.2.5 this is 2.)
+ *
+ * Since: 3.0
+ */
+#define WNCK_MINOR_VERSION (@WNCK_MINOR_VERSION@)
+
+/**
+ * WNCK_MICRO_VERSION:
+ *
+ * Return value: the micro version number of the libwnck library, from the
+ * headers used at application compile time, rather than from the library
+ * linked against at application run time.
+ * (e.g. in libwnck version 1.2.5 this is 5.)
+ *
+ * Since: 3.0
+ */
+#define WNCK_MICRO_VERSION (@WNCK_MICRO_VERSION@)
+
+/**
+ * WNCK_CHECK_VERSION:
+ * @major: major version (e.g. 1 for version 1.2.5)
+ * @minor: minor version (e.g. 2 for version 1.2.5)
+ * @micro: micro version (e.g. 5 for version 1.2.5)
+ *
+ * Return value: %TRUE if the version of the libwnck header files
+ * is the same as or newer than the passed-in version, %FALSE
+ * otherwise.
+ *
+ * Since: 3.0
+ */
+#define WNCK_CHECK_VERSION(major,minor,micro) \
+ (WNCK_MAJOR_VERSION > (major) || \
+ (WNCK_MAJOR_VERSION == (major) && WNCK_MINOR_VERSION > (minor)) || \
+ (WNCK_MAJOR_VERSION == (major) && WNCK_MINOR_VERSION == (minor) && \
+ WNCK_MICRO_VERSION >= (micro)))
+
+#endif /* WNCK_VERSION_H */