aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTomi Ollila <tomi.ollila@iki.fi>2016-03-01 21:30:07 +0200
committerDavid Bremner <david@tethera.net>2016-03-14 19:54:32 -0300
commit342910a2806aee312f61280c3329cac24c26cfd4 (patch)
tree528b6fa6b69ffdb00bb5fb2f293dd9bf01215dc2 /lib
parentb8a136187a3bee1e08aa702951db4b721f0eda6d (diff)
lib: NOTMUCH_DEPRECATED macro also for older compilers
Some compilers (older than gcc 4.5 and clang 2.9) do support __attribute__ ((deprecated)) but not __attribute__ ((deprecated("message"))). Check if clang version is at least 3.0, or gcc version is at least 4.5 to define NOTMUCH_DEPRECATED as the latter variant above. Otherwise define NOTMUCH_DEPRECATED as the former variant above. For a bit simpler implementation clang 2.9 is not included to use the newer variant. It is just one release, and the older one works fine. Clang 3.0 was released around 2011-11 and gcc 5.1 2015-04-22 (therefore newer macro for gcc 4.5+)
Diffstat (limited to 'lib')
-rw-r--r--lib/notmuch.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/notmuch.h b/lib/notmuch.h
index 310a8b8a..cb46fc05 100644
--- a/lib/notmuch.h
+++ b/lib/notmuch.h
@@ -59,8 +59,17 @@ NOTMUCH_BEGIN_DECLS
#define LIBNOTMUCH_MINOR_VERSION 3
#define LIBNOTMUCH_MICRO_VERSION 0
+
+#if defined (__clang_major__) && __clang_major__ >= 3 \
+ || defined (__GNUC__) && __GNUC__ >= 5 \
+ || defined (__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ >= 5
#define NOTMUCH_DEPRECATED(major,minor) \
__attribute__ ((deprecated ("function deprecated as of libnotmuch " #major "." #minor)))
+#else
+#define NOTMUCH_DEPRECATED(major,minor) __attribute__ ((deprecated))
+#endif
+
+
#endif /* __DOXYGEN__ */
/**