[glib] Add better deprecation macros



commit 0da0411a4a2f9efde4f8fc3d6bf504ee488c2e4a
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Oct 11 13:06:58 2011 -0400

    Add better deprecation macros
    
    Unlike G_GNUC_... macros, the new G_DEPRECATED[_FOR] are
    meant as abstractions that work with different compilers.
    Using a new name also lets us restrict it to 'must be placed
    before the declaration', which works with more compilers.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=661438

 docs/reference/glib/glib-sections.txt |    4 ++++
 glib/gmacros.h                        |   17 +++++++++++++++++
 2 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt
index 464d72a..992443a 100644
--- a/docs/reference/glib/glib-sections.txt
+++ b/docs/reference/glib/glib-sections.txt
@@ -363,6 +363,10 @@ G_GNUC_INTERNAL
 G_GNUC_MAY_ALIAS
 
 <SUBSECTION>
+G_DEPRECATED
+G_DEPRECATED_FOR
+
+<SUBSECTION>
 G_LIKELY
 G_UNLIKELY
 
diff --git a/glib/gmacros.h b/glib/gmacros.h
index 50a03ed..83eef9e 100644
--- a/glib/gmacros.h
+++ b/glib/gmacros.h
@@ -287,4 +287,21 @@
 #define G_UNLIKELY(expr) (expr)
 #endif
 
+#if    __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
+#define G_DEPRECATED __attribute__((__deprecated__))
+#elif defined(_MSC_VER) && (_MSC_VER >= 1300)
+#define G_GNUC_DEPRECATED __declspec(deprecated)
+#else
+#define G_DEPRECATED
+#endif
+
+#if    __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+#define G_DEPRECATED_FOR(f) __attribute__((deprecated("Use '" #f "' instead")))
+#elif defined(_MSC_FULL_VER) && (_MSC_FULL_VER > 140050320)
+#define G_DEPRECATED_FOR(f) __declspec(deprecated("is deprecated. Use '" #f "' instead"))
+#else
+#define G_DEPRECATED_FOR(f) G_DEPRECATED
+#endif
+
+
 #endif /* __G_MACROS_H__ */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]