[libwnck] core: Add version.h to provide macros to know libwnck version



commit 26500d170a6faa8fb4158bd0157763ed2a847bc0
Author: Vincent Untz <vuntz gnome org>
Date:   Thu Jan 20 01:55:03 2011 +0100

    core: Add version.h to provide macros to know libwnck version

 configure.ac             |   16 +++++++-
 doc/libwnck-docs.sgml    |    4 ++
 doc/libwnck-sections.txt |    9 ++++
 doc/tmpl/version.sgml    |   53 +++++++++++++++++++++++++
 libwnck/Makefile.am      |    4 +-
 libwnck/libwnck.h        |    2 +
 libwnck/version.h.in     |   97 ++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 183 insertions(+), 2 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 4d9d7ef..7bba054 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,12 @@
 AC_PREREQ(2.62)
 
-AC_INIT([libwnck], [2.91.0],
+m4_define([wnck_major_version], [2])
+m4_define([wnck_minor_version], [91])
+m4_define([wnck_micro_version], [0])
+m4_define([wnck_version],
+          [wnck_major_version.wnck_minor_version.wnck_micro_version])
+
+AC_INIT([libwnck], [wnck_version],
         [http://bugzilla.gnome.org/enter_bug.cgi?product=libwnck])
 
 AM_CONFIG_HEADER(config.h)
@@ -31,6 +37,13 @@ AC_SUBST(LIBWNCK_CURRENT)
 AC_SUBST(LIBWNCK_REVISION)
 AC_SUBST(LIBWNCK_AGE)
 
+WNCK_MAJOR_VERSION=wnck_major_version
+WNCK_MINOR_VERSION=wnck_minor_version
+WNCK_MICRO_VERSION=wnck_micro_version
+AC_SUBST(WNCK_MAJOR_VERSION)
+AC_SUBST(WNCK_MINOR_VERSION)
+AC_SUBST(WNCK_MICRO_VERSION)
+
 IT_PROG_INTLTOOL([0.40.0])
 
 AC_PROG_CC
@@ -174,6 +187,7 @@ Makefile
 doc/Makefile
 po/Makefile.in
 libwnck/Makefile
+libwnck/version.h
 libwnck-3.0.pc
 libwnck-3.0-uninstalled.pc
 ])
diff --git a/doc/libwnck-docs.sgml b/doc/libwnck-docs.sgml
index 3c59f7b..07aa26b 100644
--- a/doc/libwnck-docs.sgml
+++ b/doc/libwnck-docs.sgml
@@ -69,6 +69,7 @@ that case.
     <title>Libwnck Utilities</title>
     <xi:include href="xml/resource.xml"/>
     <xi:include href="xml/misc.xml"/>
+    <xi:include href="xml/version.xml"/>
   </part>
 
   <part id="indexes">
@@ -109,6 +110,9 @@ that case.
     <index role="2.22">
       <title>Index of new symbols in 2.22</title>
     </index> 
+    <index role="3.0">
+      <title>Index of new symbols in 3.0</title>
+    </index> 
   </part>
   <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
 </book>
diff --git a/doc/libwnck-sections.txt b/doc/libwnck-sections.txt
index 134ddac..1e68235 100644
--- a/doc/libwnck-sections.txt
+++ b/doc/libwnck-sections.txt
@@ -334,6 +334,15 @@ wnck_pid_read_resource_usage
 <TITLE>Miscellaneous Functions</TITLE>
 WnckClientType
 wnck_set_client_type
+</SECTION>
+
+<SECTION>
+<FILE>version</FILE>
+<TITLE>Version Information</TITLE>
+WNCK_MAJOR_VERSION
+WNCK_MINOR_VERSION
+WNCK_MICRO_VERSION
+WNCK_CHECK_VERSION
 #</SECTION>
 
 # Ignored
diff --git a/doc/tmpl/version.sgml b/doc/tmpl/version.sgml
new file mode 100644
index 0000000..a5bc9c8
--- /dev/null
+++ b/doc/tmpl/version.sgml
@@ -0,0 +1,53 @@
+<!-- ##### SECTION Title ##### -->
+Version Information
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO WNCK_MAJOR_VERSION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO WNCK_MINOR_VERSION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO WNCK_MICRO_VERSION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO WNCK_CHECK_VERSION ##### -->
+<para>
+
+</para>
+
+ major: 
+ minor: 
+ micro: 
+
+
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 */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]