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 */