1 /* 2 MIDI Sequencer C++ library 3 Copyright (C) 2006-2021, 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 24 /** 25 * @file macros.h 26 * Drumstick visibility macros 27 */ 28 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 */ 73