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

Generated on Wed Nov 23 19:01:06 2011 for FreeCAD by  doxygen 1.6.1