Add new GStreamer version check utilities.
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>
Wed, 7 Dec 2011 17:40:35 +0000 (18:40 +0100)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Wed, 7 Dec 2011 18:05:50 +0000 (19:05 +0100)
.gitignore
configure.ac
gst-libs/gst/Makefile.am
gst-libs/gst/gstutils_version.h.in [new file with mode: 0644]

index be3a80e..26ec42c 100644 (file)
@@ -54,6 +54,7 @@ docs/reference/plugins/plugins-docs.xml
 docs/reference/plugins/tmpl*
 docs/reference/plugins/xml*
 docs/reference/plugins/*.stamp
+gst-libs/gst/gstutils_version.h
 gst-libs/gst/vaapi/gstvaapimarshal.c
 gst-libs/gst/vaapi/gstvaapimarshal.h
 gst-libs/gst/vaapi/stamp-marshal
index 808fa63..9baa50c 100644 (file)
@@ -146,6 +146,14 @@ PKG_CHECK_MODULES([GST_PLUGINS_BASE],
 AC_SUBST(GST_PLUGINS_BASE_CFLAGS)
 AC_SUBST(GST_PLUGINS_BASE_LIBS)
 
+V=`$PKG_CONFIG --modversion gstreamer-plugins-base-$GST_MAJORMINOR`
+GST_PLUGINS_BASE_MAJOR_VERSION=`echo "$V" | cut -d'.' -f1`
+GST_PLUGINS_BASE_MINOR_VERSION=`echo "$V" | cut -d'.' -f2`
+GST_PLUGINS_BASE_MICRO_VERSION=`echo "$V" | cut -d'.' -f3`
+AC_SUBST(GST_PLUGINS_BASE_MAJOR_VERSION)
+AC_SUBST(GST_PLUGINS_BASE_MINOR_VERSION)
+AC_SUBST(GST_PLUGINS_BASE_MICRO_VERSION)
+
 dnl Check for GStreamer base
 PKG_CHECK_MODULES([GST_BASE],
     [gstreamer-base-$GST_MAJORMINOR >= $GST_VERSION_REQUIRED]
@@ -328,6 +336,7 @@ debian.upstream/libgstvaapi-glx.install.in
     docs/reference/plugins/plugins-docs.xml
     gst-libs/Makefile
     gst-libs/gst/Makefile
+    gst-libs/gst/gstutils_version.h
     gst-libs/gst/vaapi/Makefile
     pkgconfig/Makefile
     pkgconfig/gstreamer-vaapi-$GST_MAJORMINOR.pc:\
index 37d365d..494170c 100644 (file)
@@ -1,4 +1,8 @@
 SUBDIRS = vaapi
 
+gen_headers    = gstutils_version.h
+noinst_HEADERS = $(gen_headers)
+EXTRA_DIST     = gstutils_version.h.in
+
 # Extra clean files so that maintainer-clean removes *everything*
-MAINTAINERCLEANFILES = Makefile.in
+MAINTAINERCLEANFILES = Makefile.in $(gen_headers)
diff --git a/gst-libs/gst/gstutils_version.h.in b/gst-libs/gst/gstutils_version.h.in
new file mode 100644 (file)
index 0000000..cc177b7
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ *  gstutils_version.h - GStreamer version utilities
+ *
+ *  Copyright (C) 2011 Intel Corporation
+ *
+ *  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, write to the Free
+ *  Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301 USA
+ */
+
+#ifndef GST_UTILS_VERSION_H
+#define GST_UTILS_VERSION_H
+
+/* gst-plugins-base version */
+#define GST_PLUGINS_BASE_MAJOR_VERSION @GST_PLUGINS_BASE_MAJOR_VERSION@
+#define GST_PLUGINS_BASE_MINOR_VERSION @GST_PLUGINS_BASE_MINOR_VERSION@
+#define GST_PLUGINS_BASE_MICRO_VERSION @GST_PLUGINS_BASE_MICRO_VERSION@
+
+/**
+ * GST_UTILS_CHECK_VERSION:
+ * @major: major version, like 1 in 1.2.3
+ * @minor: minor version, like 2 in 1.2.3
+ * @micro: micro version, like 3 in 1.2.3
+ *
+ * Evaluates to %TRUE if the version of gst-plugins-base is equal or
+ * greater than @major, @minor and @micro
+ */
+#define GST_UTILS_CHECK_VERSION(major,minor,micro, rmajor,rminor,rmicro) \
+    ((rmajor) > (major) ||                                              \
+     ((rmajor) == (major) && (rminor) > (minor)) ||                     \
+     ((rmajor) == (major) && (rminor) == (minor) && (rmicro) >= (micro)))
+
+/**
+ * GST_PLUGINS_BASE_CHECK_VERSION:
+ * @major: major version, like 1 in 1.2.3
+ * @minor: minor version, like 2 in 1.2.3
+ * @micro: micro version, like 3 in 1.2.3
+ *
+ * Evaluates to %TRUE if the version of gst-plugins-base is greater
+ * than @major, @minor and @micro
+ */
+#ifndef GST_PLUGINS_BASE_CHECK_VERSION
+#define GST_PLUGINS_BASE_CHECK_VERSION(major,minor,micro)       \
+    GST_UTILS_CHECK_VERSION(major,minor,micro,                  \
+                            GST_PLUGINS_BASE_MAJOR_VERSION,     \
+                            GST_PLUGINS_BASE_MINOR_VERSION,     \
+                            GST_PLUGINS_BASE_MICRO_VERSION)
+#endif
+
+#endif /* GST_UTILS_VERSION_H */