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