From e9f0796b44c85246ad829269e4fb1d229a6644a4 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 23 Sep 2018 15:14:08 +0200 Subject: Factor out deprecation attribute and warning boilerplate --- lv2/core/attributes.h | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++ lv2/core/meta.ttl | 2 ++ 2 files changed, 60 insertions(+) create mode 100644 lv2/core/attributes.h (limited to 'lv2/core') 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 + + 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 ; 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." -- cgit v1.2.1