diff options
| author | David Robillard <d@drobilla.net> | 2018-09-23 15:14:08 +0200 | 
|---|---|---|
| committer | David Robillard <d@drobilla.net> | 2018-09-23 15:14:08 +0200 | 
| commit | e9f0796b44c85246ad829269e4fb1d229a6644a4 (patch) | |
| tree | 8790c0238ccf40bcc95a9c825c956f7f40f003ec /lv2 | |
| parent | 569dc8a49d7590e6669e150052ad27faf590ab29 (diff) | |
| download | lv2-e9f0796b44c85246ad829269e4fb1d229a6644a4.tar.xz | |
Factor out deprecation attribute and warning boilerplate
Diffstat (limited to 'lv2')
| -rw-r--r-- | lv2/atom/forge.h | 29 | ||||
| -rw-r--r-- | lv2/core/attributes.h | 58 | ||||
| -rw-r--r-- | lv2/core/meta.ttl | 2 | 
3 files changed, 67 insertions, 22 deletions
diff --git a/lv2/atom/forge.h b/lv2/atom/forge.h index a77170f..826b2d1 100644 --- a/lv2/atom/forge.h +++ b/lv2/atom/forge.h @@ -52,14 +52,9 @@  #include "lv2/atom/atom.h"  #include "lv2/atom/util.h" +#include "lv2/core/attributes.h"  #include "lv2/urid/urid.h" -#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) -#    define LV2_ATOM_FORGE_DEPRECATED __attribute__((__deprecated__)) -#else -#    define LV2_ATOM_FORGE_DEPRECATED -#endif -  #ifdef __cplusplus  extern "C" {  #else @@ -67,13 +62,7 @@ extern "C" {  #endif  // Disable deprecation warnings for Blank and Resource -#if defined(__clang__) -#    pragma clang diagnostic push -#    pragma clang diagnostic ignored "-Wdeprecated-declarations" -#elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) -#    pragma GCC diagnostic push -#    pragma GCC diagnostic ignored "-Wdeprecated-declarations" -#endif +LV2_DISABLE_DEPRECATION_WARNINGS  /** Handle for LV2_Atom_Forge_Sink. */  typedef void* LV2_Atom_Forge_Sink_Handle; @@ -110,7 +99,7 @@ typedef struct {  	LV2_Atom_Forge_Frame* stack; -	LV2_URID Blank LV2_ATOM_FORGE_DEPRECATED; +	LV2_URID Blank LV2_DEPRECATED;  	LV2_URID Bool;  	LV2_URID Chunk;  	LV2_URID Double; @@ -121,7 +110,7 @@ typedef struct {  	LV2_URID Object;  	LV2_URID Path;  	LV2_URID Property; -	LV2_URID Resource LV2_ATOM_FORGE_DEPRECATED; +	LV2_URID Resource LV2_DEPRECATED;  	LV2_URID Sequence;  	LV2_URID String;  	LV2_URID Tuple; @@ -584,7 +573,7 @@ lv2_atom_forge_object(LV2_Atom_Forge*       forge,     This function is deprecated and should not be used in new code.     Use lv2_atom_forge_object() directly instead.  */ -LV2_ATOM_FORGE_DEPRECATED +LV2_DEPRECATED  static inline LV2_Atom_Forge_Ref  lv2_atom_forge_resource(LV2_Atom_Forge*       forge,                          LV2_Atom_Forge_Frame* frame, @@ -605,7 +594,7 @@ lv2_atom_forge_resource(LV2_Atom_Forge*       forge,     This function is deprecated and should not be used in new code.     Use lv2_atom_forge_object() directly instead.  */ -LV2_ATOM_FORGE_DEPRECATED +LV2_DEPRECATED  static inline LV2_Atom_Forge_Ref  lv2_atom_forge_blank(LV2_Atom_Forge*       forge,                       LV2_Atom_Forge_Frame* frame, @@ -691,11 +680,7 @@ lv2_atom_forge_beat_time(LV2_Atom_Forge* forge, double beats)     @}  */ -#if defined(__clang__) -#    pragma clang diagnostic pop -#elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) -#    pragma GCC diagnostic pop -#endif +LV2_RESTORE_WARNINGS  #ifdef __cplusplus  }  /* extern "C" */ diff --git a/lv2/core/attributes.h b/lv2/core/attributes.h new file mode 100644 index 0000000..c054ae1 --- /dev/null +++ b/lv2/core/attributes.h @@ -0,0 +1,58 @@ +/* +  Copyright 2018 David Robillard <http://drobilla.net> + +  Permission to use, copy, modify, and/or distribute this software for any +  purpose with or without fee is hereby granted, provided that the above +  copyright notice and this permission notice appear in all copies. + +  THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +  ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +#ifndef LV2_CORE_ATTRIBUTES_H +#define LV2_CORE_ATTRIBUTES_H + +/** +   @defgroup attributes Attributes + +   Macros for source code attributes. + +   @{ +*/ + +#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) +#define LV2_DEPRECATED __attribute__((__deprecated__)) +#else +#define LV2_DEPRECATED +#endif + +#if defined(__clang__) +#define LV2_DISABLE_DEPRECATION_WARNINGS \ +	_Pragma("clang diagnostic push") \ +	_Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") +#elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) +#define LV2_DISABLE_DEPRECATION_WARNINGS \ +	_Pragma("GCC diagnostic push") \ +	_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#else +#define LV2_DISABLE_DEPRECATION_WARNINGS +#endif + +#if defined(__clang__) +#define LV2_RESTORE_WARNINGS _Pragma("clang diagnostic pop") +#elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) +#define LV2_RESTORE_WARNINGS _Pragma("GCC diagnostic pop") +#else +#define LV2_RESTORE_WARNINGS +#endif + +/** +   @} +*/ + +#endif /* LV2_CORE_ATTRIBUTES_H */ diff --git a/lv2/core/meta.ttl b/lv2/core/meta.ttl index 8ed9595..d6290f9 100644 --- a/lv2/core/meta.ttl +++ b/lv2/core/meta.ttl @@ -43,6 +43,8 @@ THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH R  		dcs:blame <http://drobilla.net/drobilla#me> ;  		dcs:changeset [  			dcs:item [ +				rdfs:label "Add core/attributes.h utility header." +			] , [  				rdfs:label "Include waf sources and fix build with Python 3.7."  			] , [  				rdfs:label "eg-sampler: Add waveform display to UI."  |