Wm4Platforms.h

Go to the documentation of this file.
00001 // Wild Magic Source Code
00002 // David Eberly
00003 // http://www.geometrictools.com
00004 // Copyright (c) 1998-2008
00005 //
00006 // This library is free software; you can redistribute it and/or modify it
00007 // under the terms of the GNU Lesser General Public License as published by
00008 // the Free Software Foundation; either version 2.1 of the License, or (at
00009 // your option) any later version.  The license is available for reading at
00010 // either of the locations:
00011 //     http://www.gnu.org/copyleft/lgpl.html
00012 //     http://www.geometrictools.com/License/WildMagicLicense.pdf
00013 //
00014 // Version: 4.0.1 (2006/11/14)
00015 
00016 #ifndef WM4PLATFORMS_H
00017 #define WM4PLATFORMS_H
00018 
00019 // Platform-specific information goes in this header file.  The defines to
00020 // control which platform is included are:
00021 //
00022 // _WIN32      :  Microsoft Windows XP
00023 // WIN32       :  Microsoft Windows XP
00024 // __MINGW32__ :  Minimalist GNU for Windows
00025 // __CYGWIN__  :  Cygwin
00026 // __APPLE__   :  Macintosh OS X (10.2.3 or higher required)
00027 // __sgi       :  Silicon Graphics Irix
00028 // __sun       :  Sun Solaris
00029 // <none>      :  Linux
00030 //
00031 // Add others as needed.
00032 
00033 //----------------------------------------------------------------------------
00034 // Minimalist GNU for Windows
00035 //----------------------------------------------------------------------------
00036 #if defined(__MINGW32__)
00037 
00038 typedef long long Integer64;
00039 
00040 #elif defined(__CYGWIN__)
00041 //----------------------------------------------------------------------------
00042 // Cygwin
00043 //----------------------------------------------------------------------------
00044 
00045 #ifndef _WIN32
00046 #define _WIN32
00047 #endif
00048 
00049 #ifndef WIN32
00050 #define WIN32
00051 #endif
00052 
00053 typedef long long Integer64;
00054 
00055 //----------------------------------------------------------------------------
00056 // Microsoft Windows 2000/XP platform
00057 //----------------------------------------------------------------------------
00058 #elif defined(_WIN32) || defined(WIN32)
00059 
00060 #if defined(_MSC_VER)
00061 
00062 // Microsoft Visual C++ specific pragmas.  MSVC6 is version 12.00, MSVC7.0 is
00063 // version 13.00, and MSVC7.1 is version 13.10.  MSVC8.0 is version 14.00.
00064 #if _MSC_VER < 1300
00065 #define WM4_USING_VC6
00066 #elif _MSC_VER < 1310
00067 #define WM4_USING_VC70
00068 #elif _MSC_VER < 1400
00069 #define WM4_USING_VC71
00070 #else
00071 #define WM4_USING_VC80
00072 #endif
00073 
00074 #if defined(WM4_USING_VC6)
00075 
00076 // Disable the warning "non dll-interface class FOO used as base for
00077 // dll-interface class BAR."  These occur in the derivations
00078 // class Binary2D : public ImageInt2D; class Binary3D : public ImageInt3D;
00079 //#pragma warning( disable : 4275 )
00080 
00081 // Disable the warning about truncating the debug names to 255 characters.
00082 // This warning shows up often with STL code in MSVC6, but not MSVC7.
00083 #pragma warning( disable : 4786 )
00084 
00085 // This warning is disabled because MSVC6 warns about not finding
00086 // implementations for the pure virtual functions that occur in the template
00087 // classes 'template <class Real>' when explicitly instantiating the classes.
00088 // NOTE:  If you create your own template classes that will be explicitly
00089 // instantiated, you should re-enable the warning to make sure that in fact
00090 // all your member data and functions have been defined and implemented.
00091 #pragma warning( disable : 4661 )
00092 
00093 #endif
00094 
00095 // The use of WM4_FOUNDATION_ITEM to export an entire class generates warnings
00096 // when member data and functions involving templates or inlines occur.  To
00097 // avoid the warning, WM4_FOUNDATION_ITEM can be applied only to those items
00098 // that really need to be exported.
00099 #pragma warning( disable : 4251 ) 
00100 
00101 typedef __int64 Integer64;
00102 
00103 #endif
00104 //----------------------------------------------------------------------------
00105 
00106 //----------------------------------------------------------------------------
00107 // Macintosh OS X platform
00108 //----------------------------------------------------------------------------
00109 #elif defined(__APPLE__)
00110 
00111 #if defined(__BIG_ENDIAN__)
00112 #define WM4_BIG_ENDIAN
00113 #else
00114 #define WM4_LITTLE_ENDIAN
00115 #endif
00116 
00117 #include <stdint.h>
00118 typedef int64_t Integer64;
00119 //----------------------------------------------------------------------------
00120 
00121 //----------------------------------------------------------------------------
00122 // Linux platform
00123 //----------------------------------------------------------------------------
00124 #else
00125 
00126 #include <stdint.h>
00127 typedef int64_t Integer64;
00128 
00129 #endif
00130 //----------------------------------------------------------------------------
00131 
00132 #endif

Generated on Fri Feb 13 13:58:10 2009 for meshmorph by  doxygen 1.5.1