drumstick 2.7.2
macros.h
Go to the documentation of this file.
1/*
2 MIDI Sequencer C++ library
3 Copyright (C) 2006-2022, Pedro Lopez-Cabanillas <plcl@users.sf.net>
4
5 This library is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3 of the License, or
8 (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#ifndef DRUMSTICK_MACROS_H
20#define DRUMSTICK_MACROS_H
21
22#include <qglobal.h>
23
29#if !defined(DRUMSTICK_EXPORT)
30# if defined(DRUMSTICK_STATIC)
31# define DRUMSTICK_EXPORT
32# else
33# if defined(drumstick_alsa_EXPORTS) || defined(drumstick_file_EXPORTS) || defined(drumstick_rt_EXPORTS) || defined(drumstick_widgets_EXPORTS)
34# define DRUMSTICK_EXPORT Q_DECL_EXPORT
35# else
36# if defined(Q_OS_WIN)
37# define DRUMSTICK_EXPORT Q_DECL_IMPORT
38# else
39# define DRUMSTICK_EXPORT Q_DECL_EXPORT
40# endif
41# endif
42# endif
43#endif
44
45#if defined(_MSC_VER)
46 #define DISABLE_WARNING_PUSH __pragma(warning( push ))
47 #define DISABLE_WARNING_POP __pragma(warning( pop ))
48 #define DISABLE_WARNING(warningNumber) __pragma(warning( disable : warningNumber ))
49
50 #define DISABLE_WARNING_UNREFERENCED_FORMAL_PARAMETER DISABLE_WARNING(4100)
51 #define DISABLE_WARNING_UNREFERENCED_FUNCTION DISABLE_WARNING(4505)
52 #define DISABLE_WARNING_DEPRECATED_DECLARATIONS DISABLE_WARNING(4996)
53
54#elif defined(__GNUC__) || defined(__clang__)
55 #define DO_PRAGMA(X) _Pragma(#X)
56 #define DISABLE_WARNING_PUSH DO_PRAGMA(GCC diagnostic push)
57 #define DISABLE_WARNING_POP DO_PRAGMA(GCC diagnostic pop)
58 #define DISABLE_WARNING(warningName) DO_PRAGMA(GCC diagnostic ignored #warningName)
59
60 #define DISABLE_WARNING_UNREFERENCED_FORMAL_PARAMETER DISABLE_WARNING(-Wunused-parameter)
61 #define DISABLE_WARNING_UNREFERENCED_FUNCTION DISABLE_WARNING(-Wunused-function)
62 #define DISABLE_WARNING_DEPRECATED_DECLARATIONS DISABLE_WARNING(-Wdeprecated-declarations)
63
64#else
65 #define DISABLE_WARNING_PUSH
66 #define DISABLE_WARNING_POP
67 #define DISABLE_WARNING_UNREFERENCED_FORMAL_PARAMETER
68 #define DISABLE_WARNING_UNREFERENCED_FUNCTION
69 #define DISABLE_WARNING_DEPRECATED_DECLARATIONS
70#endif
71
72#endif /* DRUMSTICK_MACROS_H */