Rumba C++ SDK
Macros.h
Go to the documentation of this file.
1 # pragma once
2 
3 #ifdef _WIN32
4 # define _MAQUINA_WINDOWS_
5 # undef _MAQUINA_LINUX_
6 # define MAQUINA_IGNORE_WARNINGS_BEGIN __pragma(warning( push, 0 ))
7 # define MAQUINA_IGNORE_WARNINGS_END __pragma(warning( pop ))
8 # define MAQUINA_PRETTY_FUNCTION __FUNCTION__
9 # ifndef NOMINMAX
10 # define NOMINMAX
11 # endif
12 #elif defined(__unix__)
13 # undef _MAQUINA_WINDOWS_
14 # define _MAQUINA_LINUX_
15 # ifdef __clang__
16 # define MAQUINA_IGNORE_WARNINGS_BEGIN \
17  _Pragma( "GCC diagnostic push" ) \
18  _Pragma( "GCC diagnostic ignored \"-Weverything\"" )
19 # else
20 // This may be useless due to a long standing bug in gcc https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53431
21 # define MAQUINA_IGNORE_WARNINGS_BEGIN \
22  _Pragma( "GCC diagnostic push" ) \
23  _Pragma( "GCC diagnostic ignored \"-Wall\"") \
24  _Pragma( "GCC diagnostic ignored \"-Wextra\"") \
25  _Pragma( "GCC diagnostic ignored \"-Wconversion\"") \
26  _Pragma( "GCC diagnostic ignored \"-Wdeprecated\"") \
27  _Pragma( "GCC diagnostic ignored \"-Wparentheses\"") \
28  _Pragma( "GCC diagnostic ignored \"-Wunused-but-set-parameter\"") \
29  _Pragma( "GCC diagnostic ignored \"-Wstrict-aliasing\"")
30 # endif
31 # define MAQUINA_IGNORE_WARNINGS_END _Pragma( "GCC diagnostic pop")
32 # define MAQUINA_PRETTY_FUNCTION __PRETTY_FUNCTION__
33 #else
34 # error Your platform is not supported/recognized.
35 #endif
36