drumstick 2.9.0
C++ MIDI libraries using Qt objects, idioms, and style.
macros.h
Go to the documentation of this file.
1/*
2 MIDI Sequencer C++ library
3 Copyright (C) 2006-2023, 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
28#if defined(_MSC_VER)
29 #define DISABLE_WARNING_PUSH __pragma(warning( push ))
30 #define DISABLE_WARNING_POP __pragma(warning( pop ))
31 #define DISABLE_WARNING(warningNumber) __pragma(warning( disable : warningNumber ))
32
33 #define DISABLE_WARNING_UNREFERENCED_FORMAL_PARAMETER DISABLE_WARNING(4100)
34 #define DISABLE_WARNING_UNREFERENCED_FUNCTION DISABLE_WARNING(4505)
35 #define DISABLE_WARNING_DEPRECATED_DECLARATIONS DISABLE_WARNING(4996)
36
37#elif defined(__GNUC__) || defined(__clang__)
38 #define DO_PRAGMA(X) _Pragma(#X)
39 #define DISABLE_WARNING_PUSH DO_PRAGMA(GCC diagnostic push)
40 #define DISABLE_WARNING_POP DO_PRAGMA(GCC diagnostic pop)
41 #define DISABLE_WARNING(warningName) DO_PRAGMA(GCC diagnostic ignored #warningName)
42
43 #define DISABLE_WARNING_UNREFERENCED_FORMAL_PARAMETER DISABLE_WARNING(-Wunused-parameter)
44 #define DISABLE_WARNING_UNREFERENCED_FUNCTION DISABLE_WARNING(-Wunused-function)
45 #define DISABLE_WARNING_DEPRECATED_DECLARATIONS DISABLE_WARNING(-Wdeprecated-declarations)
46
47#else
48 #define DISABLE_WARNING_PUSH
49 #define DISABLE_WARNING_POP
50 #define DISABLE_WARNING_UNREFERENCED_FORMAL_PARAMETER
51 #define DISABLE_WARNING_UNREFERENCED_FUNCTION
52 #define DISABLE_WARNING_DEPRECATED_DECLARATIONS
53#endif
54
55#endif /* DRUMSTICK_MACROS_H */