[libvirt] [PATCHv3] Macro for testing the version you are compiling with

Doug Goldstein cardoe at cardoe.com
Mon Nov 18 17:54:06 UTC 2013


Added a macro similar to the GLib's GLIB_CHECK_VERSION so that one can
simply do something like:

 #if LIBVIR_CHECK_VERSION(1,1,3)
   /* Call function here that appeared in 1.1.3 and newer */
   virSomeNewFunction();
 #endif
---
v3: rename from LIBVIRT_CHECK_VERSION to LIBVIR_CHECK_VERSION
v2: Change from Linux kernel style macro to GLib style macro
---
 include/libvirt/libvirt.h.in | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
index d656634..146a59b 100644
--- a/include/libvirt/libvirt.h.in
+++ b/include/libvirt/libvirt.h.in
@@ -1466,6 +1466,22 @@ VIR_EXPORT_VAR virConnectAuthPtr virConnectAuthPtrDefault;
 
 #define LIBVIR_VERSION_NUMBER @LIBVIRT_VERSION_NUMBER@
 
+/**
+ * LIBVIR_CHECK_VERSION:
+ * @major: major component of the version number
+ * @minor: minor component of the version number
+ * @micro: micro component of the version number
+ *
+ * Macro for developers to easily check what version of the library
+ * their code is compiling against.
+ * e.g.
+ *   #if LIBVIR_CHECK_VERSION(1,1,3)
+ *     // some code that only works in 1.1.3 and newer
+ *   #endif
+ */
+#define LIBVIR_CHECK_VERSION(major, minor, micro) \
+    ((major) * 1000000 + (minor) * 1000 + (micro) <= LIBVIR_VERSION_NUMBER)
+
 int                     virGetVersion           (unsigned long *libVer,
                                                  const char *type,
                                                  unsigned long *typeVer);
-- 
1.8.3.2




More information about the libvir-list mailing list