X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fcompiler.h;h=5a1cd47733cf984205be5d8db81e7cc2d809e904;hb=ff65b82671fc32ab96f85969d2790340b8d12877;hp=e29a20e37b38724a556283e6188b44a316b97c3b;hpb=17bcd4e2ab4ea5b9d407e83bb2a30e62e69f170e;p=simgear.git diff --git a/simgear/compiler.h b/simgear/compiler.h index e29a20e3..5a1cd477 100644 --- a/simgear/compiler.h +++ b/simgear/compiler.h @@ -46,6 +46,9 @@ # warning GCC compilers prior to 3.4 are suspect # endif +# define GCC_VERSION (__GNUC__ * 10000 \ + + __GNUC_MINOR__ * 100 \ + + __GNUC_PATCHLEVEL__) # define SG_COMPILER_STR "GNU C++ version " SG_STRINGIZE(__GNUC__) "." SG_STRINGIZE(__GNUC_MINOR__) #endif // __GNUC__ @@ -69,6 +72,9 @@ # define copysign _copysign # define strcasecmp stricmp +# undef min +# undef max + # pragma warning(disable: 4786) // identifier was truncated to '255' characters # pragma warning(disable: 4244) // conversion from double to float # pragma warning(disable: 4305) // @@ -106,6 +112,7 @@ #if defined (__sun) +# define SG_UNIX # include # include # if defined ( __cplusplus ) @@ -135,6 +142,8 @@ // #ifdef __APPLE__ +# define SG_MAC +# define SG_UNIX # ifdef __GNUC__ # if ( __GNUC__ > 3 ) || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 3 ) inline int (isnan)(double r) { return !(r <= 0 || r >= 0); } @@ -151,6 +160,8 @@ inline int (isnan)(double r) { return !(r <= 0 || r >= 0); } #endif #if defined (__FreeBSD__) +# define SG_UNIX +#include # if __FreeBSD_version < 500000 extern "C" { inline int isnan(double r) { return !(r <= 0 || r >= 0); } @@ -159,9 +170,25 @@ inline int (isnan)(double r) { return !(r <= 0 || r >= 0); } #endif #if defined (__CYGWIN__) +# define SG_WINDOWS +# define SG_UNIX # include // isnan #endif +// includes both MSVC and mingw compilers +#if defined(_WIN32) || defined(__WIN32__) +# define SG_WINDOWS +#endif + +#if defined(__linux__) || defined(_AIX) || defined ( sgi ) +# define SG_UNIX +#endif + +#if defined( __GNUC__ ) +# define DEPRECATED __attribute__ ((deprecated)) +#else +# define DEPRECATED +#endif // // No user modifiable definitions beyond here.