Add macros for deprecating macros
Add macros for deprecating macros

We want to be able to deprecate macros, but right now the best we can do
is to wrap them with things like:

  #ifndef CLUTTER_DISABLE_DEPRECATED
  # define A_MACRO_I_WANT_TO_DEPRECATE ...
  #endif

Which requires adding a new symbol to the build, and will cause a build
error instead of a compiler/pre-processor warning.

Fortunately, we can use the _Pragma() keyword introduced by C99 and
supported by GCC to add a warning to the output, while leaving the macro
itself intact.

GCC does not have a "deprecated" pragma, so we have to use a generic
warning; this also means we cannot do nifty things like concatenating
strings and the like, as we do for the "deprecated" attribute.

The macro deprecation symbol should have the same affordances as the
function deprecation one, and evaluate to nothing if the required
version is lower than the current version; or if the global toggle for
deprecation warnings is in effect.

Distrotech/clutter,jigpu/clutter,Distrotech/clutter,jigpu/clutter,Distrotech/clutter,jigpu/clutter,Distrotech/clutter,jigpu/clutter,GNOME/clutter,GNOME/clutter,Distrotech/clutter,GNOME/clutter,GNOME/clutter,GNOME/clutter,Distrotech/clutter,jigpu/clutter,jigpu/clutter