From 060990db14bf3481c461959230549291a89e5c50 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Wed, 6 Nov 2013 21:01:41 +0200 Subject: [PATCH] lib: add library version check macro There have been some plans for making build incompatible changes to the library API. This is inconvenient, but it is much more so without a way to easily conditional build against multiple versions of notmuch. The macro has been lifted from glib. --- lib/notmuch.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/lib/notmuch.h b/lib/notmuch.h index 82fd5998..6c3942d3 100644 --- a/lib/notmuch.h +++ b/lib/notmuch.h @@ -41,6 +41,30 @@ NOTMUCH_BEGIN_DECLS #define TRUE 1 #endif +#define NOTMUCH_MAJOR_VERSION 0 +#define NOTMUCH_MINOR_VERSION 17 +#define NOTMUCH_MICRO_VERSION 0 + +/* + * Check the version of the notmuch library being compiled against. + * + * Return true if the library being compiled against is of the + * specified version or above. For example: + * + * #if NOTMUCH_CHECK_VERSION(0, 18, 0) + * (code requiring notmuch 0.18 or above) + * #endif + * + * NOTMUCH_CHECK_VERSION has been defined since version 0.17.0; you + * can use #if !defined(NOTMUCH_CHECK_VERSION) to check for versions + * prior to that. + */ +#define NOTMUCH_CHECK_VERSION (major, minor, micro) \ + (NOTMUCH_MAJOR_VERSION > (major) || \ + (NOTMUCH_MAJOR_VERSION == (major) && NOTMUCH_MINOR_VERSION > (minor)) || \ + (NOTMUCH_MAJOR_VERSION == (major) && NOTMUCH_MINOR_VERSION == (minor) && \ + NOTMUCH_MICRO_VERSION >= (micro))) + typedef int notmuch_bool_t; /* Status codes used for the return values of most functions. -- 2.26.2