summaryrefslogtreecommitdiff
path: root/libpurple/version.h.in
diff options
context:
space:
mode:
authorStu Tomlinson <nosnilmot@pidgin.im>2007-04-28 16:55:31 +0000
committerStu Tomlinson <nosnilmot@pidgin.im>2007-04-28 16:55:31 +0000
commit137bb18850157a59ccd99b7e4daa2aa9de542b84 (patch)
treefba80d49de060a4d195b5e695acf370012fe24d4 /libpurple/version.h.in
parent05d7b1c89c03a83b62ccb8049374c891d2258845 (diff)
downloadpidgin-137bb18850157a59ccd99b7e4daa2aa9de542b84.tar.gz
soname versioning of libpurple. Should help resolve debian bug 421282
All version control is within configure.ac now Adjust the define for purple_version_suffix as appropriate: [devel] - normal development periods [betaN] - for beta releases [] - for releases Follow the instructions in configure.ac to set the version number depending on how the API has changed (ie. following our normal version numbering!) version.h is auto-generated now Added purple_version_check(), purple_major_version, purple_minor_version, & purple_micro_version for run-time version comparisons in addition to the existing compile time macros. libpurple Plugins moved again, this time to: $(libdir)/purple-$PURPLE_MAJOR_VERSION This will allow parallel installations of different major libpurple versions in the future should someone wish to.
Diffstat (limited to 'libpurple/version.h.in')
-rw-r--r--libpurple/version.h.in61
1 files changed, 61 insertions, 0 deletions
diff --git a/libpurple/version.h.in b/libpurple/version.h.in
new file mode 100644
index 0000000000..98fc04079d
--- /dev/null
+++ b/libpurple/version.h.in
@@ -0,0 +1,61 @@
+/**
+ * @file version.h Purple Versioning
+ *
+ * purple
+ *
+ * Purple is the legal property of its developers, whose names are too numerous
+ * to list here. Please refer to the COPYRIGHT file distributed with this
+ * source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef _PURPLE_VERSION_H_
+#define _PURPLE_VERSION_H_
+
+#define PURPLE_MAJOR_VERSION (@PURPLE_MAJOR_VERSION@)
+#define PURPLE_MINOR_VERSION (@PURPLE_MINOR_VERSION@)
+#define PURPLE_MICRO_VERSION (@PURPLE_MICRO_VERSION@)
+
+#define PURPLE_VERSION_CHECK(x,y,z) ((x) == PURPLE_MAJOR_VERSION && \
+ ((y) < PURPLE_MINOR_VERSION || \
+ ((y) == PURPLE_MINOR_VERSION && (z) <= PURPLE_MICRO_VERSION)))
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+const guint purple_major_version;
+const guint purple_minor_version;
+const guint purple_micro_version;
+
+/**
+ * Checks that the libpurple version is compatible with the requested
+ * version
+ *
+ * @param required_major: the required major version.
+ * @param required_minor: the required minor version.
+ * @param required_micro: the required micro version.
+ *
+ * @return NULL if the versions are compatible, or a string describing
+ * the version mismatch if not compatible.
+ */
+const char *purple_version_check(guint required_major, guint required_minor, guint required_micro);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PURPLE_VERSION_H_ */
+