00001 /*========================================================================= 00002 00003 Program: gdcm 00004 Module: $RCSfile: gdcmSystem.h,v $ 00005 Language: C++ 00006 Date: $Date: 2007/08/22 16:14:05 $ 00007 Version: $Revision: 1.5 $ 00008 00009 Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de 00010 l'Image). All rights reserved. See Doc/License.txt or 00011 http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details. 00012 00013 This software is distributed WITHOUT ANY WARRANTY; without even 00014 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00015 PURPOSE. See the above copyright notices for more information. 00016 00017 =========================================================================*/ 00018 00019 #ifndef _GDCMSYSTEM_H_ 00020 #define _GDCMSYSTEM_H_ 00021 00022 #include "gdcmConfigure.h" 00023 00024 //----------------------------------------------------------------------------- 00025 //This is needed when compiling in debug mode 00026 #ifdef _MSC_VER 00027 // 'identifier' : class 'type' needs to have dll-interface to be used by 00028 // clients of class 'type2' 00029 #pragma warning ( disable : 4251 ) 00030 // non dll-interface class 'type' used as base for dll-interface class 'type2' 00031 #pragma warning ( disable : 4275 ) 00032 // 'identifier' : identifier was truncated to 'number' characters in the 00033 // debug information 00034 #pragma warning ( disable : 4786 ) 00035 //'identifier' : decorated name length exceeded, name was truncated 00036 #pragma warning ( disable : 4503 ) 00037 // C++ exception specification ignored except to indicate a 00038 // function is not __declspec(nothrow) 00039 #pragma warning ( disable : 4290 ) 00040 // signed/unsigned mismatch 00041 #pragma warning ( disable : 4018 ) 00042 // return type for 'identifier' is '' (ie; not a UDT or reference to UDT. Will 00043 // produce errors if applied using infix notation 00044 #pragma warning ( disable : 4284 ) 00045 // 'type' : forcing value to bool 'true' or 'false' (performance warning) 00046 // //#pragma warning ( disable : 4800 ) 00047 #endif //_MSC_VER 00048 00049 //----------------------------------------------------------------------------- 00050 #ifdef CMAKE_HAVE_STDINT_H 00051 #include <stdint.h> 00052 #else 00053 #ifdef CMAKE_HAVE_INTTYPES_H 00054 // Old system only have this 00055 #include <inttypes.h> // For uint8_t uint16_t and uint32_t 00056 #else 00057 // Broken plateforms do not respect C99 and do not provide those typedef 00058 // Special case for recent Borland compiler, comes with stdint.h 00059 #if defined(_MSC_VER) || defined(__BORLANDC__) && (__BORLANDC__ < 0x0560) \ 00060 || defined(__MINGW32__) 00061 typedef signed char int8_t; 00062 typedef signed short int16_t; 00063 typedef signed int int32_t; 00064 typedef unsigned char uint8_t; 00065 typedef unsigned short uint16_t; 00066 typedef unsigned int uint32_t; 00067 #else 00068 #error "Sorry your plateform is not supported" 00069 #endif // defined(_MSC_VER) || defined(__BORLANDC__) && (__BORLANDC__ < 0x0560) || defined(__MINGW32__) 00070 #endif // CMAKE_HAVE_INTTYPES_H 00071 #endif // CMAKE_HAVE_STDINT_H 00072 00073 // Basically for VS6 and bcc 5.5.1: 00074 #ifndef UINT32_MAX 00075 #define UINT32_MAX (4294967295U) 00076 #endif 00077 00078 //----------------------------------------------------------------------------- 00079 #endif