summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2013-06-13 11:53:43 +0200
committerAleksander Morgado <aleksander@lanedo.com>2013-06-13 12:01:12 +0200
commit306a3c9d0172a43939059a3c564077930907f19e (patch)
treef561e300b2e054bfd04326507b76684b3218b524
parenteaa6bcd2a14b3bda34ee1ca8bcbb2227aa82e651 (diff)
downloadlibqmi-306a3c9d0172a43939059a3c564077930907f19e.tar.gz
libqmi-glib,api: provide version info
-rw-r--r--.gitignore1
-rw-r--r--configure.ac20
-rw-r--r--docs/reference/libqmi-glib/libqmi-glib-common.sections9
-rw-r--r--docs/reference/libqmi-glib/libqmi-glib-docs.xml1
-rw-r--r--libqmi-glib/Makefile.am5
-rw-r--r--libqmi-glib/libqmi-glib.h1
-rw-r--r--libqmi-glib/qmi-version.h.in69
7 files changed, 105 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 3dd92bf5..46ad4084 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,6 +35,7 @@ libqmi-glib/.deps
libqmi-glib/Makefile
libqmi-glib/Makefile.in
libqmi-glib/libqmi-glib.la
+libqmi-glib/qmi-version.h
libqmi-glib/generated/.libs
libqmi-glib/generated/.deps
diff --git a/configure.ac b/configure.ac
index 2e9ebcd2..5da861c5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,14 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ([2.68])
-AC_INIT([libqmi], [1.5.0], [libqmi-devel@lists.freedesktop.org])
+dnl The QMI version number
+m4_define([qmi_major_version], [1])
+m4_define([qmi_minor_version], [5])
+m4_define([qmi_micro_version], [0])
+m4_define([qmi_version],
+ [qmi_major_version.qmi_minor_version.qmi_micro_version])
+
+AC_INIT([libqmi], [qmi_version], [libqmi-devel@lists.freedesktop.org])
AC_CONFIG_SRCDIR([config.h.in])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
@@ -26,6 +33,16 @@ LT_INIT
dnl Specific warnings to always use
LIBQMI_COMPILER_WARNINGS
+dnl Version stuff
+QMI_MAJOR_VERSION=qmi_major_version
+QMI_MINOR_VERSION=qmi_minor_version
+QMI_MICRO_VERSION=qmi_micro_version
+QMI_VERSION=qmi_version
+AC_SUBST(QMI_MAJOR_VERSION)
+AC_SUBST(QMI_MINOR_VERSION)
+AC_SUBST(QMI_MICRO_VERSION)
+AC_SUBST(QMI_VERSION)
+
dnl General dependencies for libqmi-glib
PKG_CHECK_MODULES(LIBQMI_GLIB,
glib-2.0 >= 2.32
@@ -68,6 +85,7 @@ AC_CONFIG_FILES([Makefile
build-aux/templates/Makefile
build-aux/qmi-codegen/Makefile
libqmi-glib/Makefile
+ libqmi-glib/qmi-version.h
libqmi-glib/generated/Makefile
libqmi-glib/test/Makefile
cli/Makefile
diff --git a/docs/reference/libqmi-glib/libqmi-glib-common.sections b/docs/reference/libqmi-glib/libqmi-glib-common.sections
index 8697b49b..6d693c03 100644
--- a/docs/reference/libqmi-glib/libqmi-glib-common.sections
+++ b/docs/reference/libqmi-glib/libqmi-glib-common.sections
@@ -1,4 +1,13 @@
<SECTION>
+<FILE>qmi-version</FILE>
+<TITLE>Version checks</TITLE>
+QMI_MAJOR_VERSION
+QMI_MICRO_VERSION
+QMI_MINOR_VERSION
+QMI_CHECK_VERSION
+</SECTION>
+
+<SECTION>
<FILE>qmi-client</FILE>
<TITLE>QmiClient</TITLE>
QMI_CID_NONE
diff --git a/docs/reference/libqmi-glib/libqmi-glib-docs.xml b/docs/reference/libqmi-glib/libqmi-glib-docs.xml
index cd638aff..2c386b27 100644
--- a/docs/reference/libqmi-glib/libqmi-glib-docs.xml
+++ b/docs/reference/libqmi-glib/libqmi-glib-docs.xml
@@ -39,6 +39,7 @@
<chapter>
<title>Core</title>
+ <xi:include href="xml/qmi-version.xml"/>
<xi:include href="xml/qmi-message.xml"/>
<xi:include href="xml/qmi-device.xml"/>
<xi:include href="xml/qmi-client.xml"/>
diff --git a/libqmi-glib/Makefile.am b/libqmi-glib/Makefile.am
index 50c49f63..5e6a26ab 100644
--- a/libqmi-glib/Makefile.am
+++ b/libqmi-glib/Makefile.am
@@ -15,6 +15,7 @@ libqmi_glib_la_CPPFLAGS = \
libqmi_glib_la_SOURCES = \
libqmi-glib.h \
+ qmi-version.h \
qmi-errors.h \
qmi-enums-wds.h qmi-enums-wds.c \
qmi-enums-dms.h qmi-flags64-dms.h \
@@ -34,6 +35,7 @@ libqmi_glib_la_LIBADD = \
includedir = @includedir@/libqmi-glib
include_HEADERS = \
libqmi-glib.h \
+ qmi-version.h \
qmi-errors.h \
qmi-enums.h \
qmi-enums-private.h \
@@ -46,3 +48,6 @@ include_HEADERS = \
qmi-message.h \
qmi-device.h \
qmi-client.h
+
+EXTRA_DIST = \
+ qmi-version.h.in
diff --git a/libqmi-glib/libqmi-glib.h b/libqmi-glib/libqmi-glib.h
index bfdad675..3d601113 100644
--- a/libqmi-glib/libqmi-glib.h
+++ b/libqmi-glib/libqmi-glib.h
@@ -28,6 +28,7 @@
/* libqmi-glib headers */
+#include "qmi-version.h"
#include "qmi-device.h"
#include "qmi-client.h"
#include "qmi-message.h"
diff --git a/libqmi-glib/qmi-version.h.in b/libqmi-glib/qmi-version.h.in
new file mode 100644
index 00000000..22dda01a
--- /dev/null
+++ b/libqmi-glib/qmi-version.h.in
@@ -0,0 +1,69 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/*
+ * 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 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, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2013 Lanedo GmbH
+ */
+
+#ifndef _QMI_VERSION_H_
+#define _QMI_VERSION_H_
+
+/**
+ * SECTION:qmi-version
+ * @short_description: Version information in the API.
+ *
+ * This section defines types that are used to identify the libqmi-glib version.
+ **/
+
+/**
+ * QMI_MAJOR_VERSION:
+ *
+ * Evaluates to the major version number of libqmi-glib which this source
+ * is compiled against.
+ */
+#define QMI_MAJOR_VERSION (@QMI_MAJOR_VERSION@)
+
+/**
+ * QMI_MINOR_VERSION:
+ *
+ * Evaluates to the minor version number of libqmi-glib which this source
+ * is compiled against.
+ */
+#define QMI_MINOR_VERSION (@QMI_MINOR_VERSION@)
+
+/**
+ * QMI_MICRO_VERSION:
+ *
+ * Evaluates to the micro version number of libqmi-glib which this source
+ * compiled against.
+ */
+#define QMI_MICRO_VERSION (@QMI_MICRO_VERSION@)
+
+/**
+ * QMI_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)
+ *
+ * Returns: %TRUE if the version of the libqmi-glib header files
+ * is the same as or newer than the passed-in version.
+ */
+#define QMI_CHECK_VERSION(major,minor,micro) \
+ (QMI_MAJOR_VERSION > (major) || \
+ (QMI_MAJOR_VERSION == (major) && QMI_MINOR_VERSION > (minor)) || \
+ (QMI_MAJOR_VERSION == (major) && QMI_MINOR_VERSION == (minor) && QMI_MICRO_VERSION >= (micro)))
+
+#endif /* _QMI_VERSION_H_ */