diff options
Diffstat (limited to 'libraries/ode-0.9/OPCODE/Ice/IcePreprocessor.h')
-rw-r--r-- | libraries/ode-0.9/OPCODE/Ice/IcePreprocessor.h | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/libraries/ode-0.9/OPCODE/Ice/IcePreprocessor.h b/libraries/ode-0.9/OPCODE/Ice/IcePreprocessor.h new file mode 100644 index 0000000..dbeca38 --- /dev/null +++ b/libraries/ode-0.9/OPCODE/Ice/IcePreprocessor.h | |||
@@ -0,0 +1,132 @@ | |||
1 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
2 | /** | ||
3 | * Contains preprocessor stuff. This should be the first included header. | ||
4 | * \file IcePreprocessor.h | ||
5 | * \author Pierre Terdiman | ||
6 | * \date April, 4, 2000 | ||
7 | */ | ||
8 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
9 | |||
10 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
11 | // Include Guard | ||
12 | #ifndef __ICEPREPROCESSOR_H__ | ||
13 | #define __ICEPREPROCESSOR_H__ | ||
14 | |||
15 | // Check platform | ||
16 | #if defined( _WIN32 ) || defined( WIN32 ) | ||
17 | // #pragma message("Compiling on Windows...") | ||
18 | #define PLATFORM_WINDOWS | ||
19 | #else | ||
20 | // don't issue pragmas on unknown platforms | ||
21 | // #pragma message("Compiling on unknown platform...") | ||
22 | #endif | ||
23 | |||
24 | // Check compiler | ||
25 | #if defined(_MSC_VER) | ||
26 | // #pragma message("Compiling with VC++...") | ||
27 | #define COMPILER_VISUAL_CPP | ||
28 | #else | ||
29 | // don't issue pragmas on unknown platforms | ||
30 | // #pragma message("Compiling with unknown compiler...") | ||
31 | #endif | ||
32 | |||
33 | // Check compiler options. If this file is included in user-apps, this | ||
34 | // shouldn't be needed, so that they can use what they like best. | ||
35 | #ifndef ICE_DONT_CHECK_COMPILER_OPTIONS | ||
36 | #ifdef COMPILER_VISUAL_CPP | ||
37 | #if defined(_CHAR_UNSIGNED) | ||
38 | #endif | ||
39 | |||
40 | #if defined(_CPPRTTI) | ||
41 | #error Please disable RTTI... | ||
42 | #endif | ||
43 | |||
44 | #if defined(_CPPUNWIND) | ||
45 | #error Please disable exceptions... | ||
46 | #endif | ||
47 | |||
48 | #if defined(_MT) | ||
49 | // Multithreading | ||
50 | #endif | ||
51 | #endif | ||
52 | #endif | ||
53 | |||
54 | // Check debug mode | ||
55 | #ifdef DEBUG // May be defined instead of _DEBUG. Let's fix it. | ||
56 | #ifndef _DEBUG | ||
57 | #define _DEBUG | ||
58 | #endif | ||
59 | #endif | ||
60 | |||
61 | #ifdef _DEBUG | ||
62 | // Here you may define items for debug builds | ||
63 | #endif | ||
64 | |||
65 | #ifndef THIS_FILE | ||
66 | #define THIS_FILE __FILE__ | ||
67 | #endif | ||
68 | |||
69 | #ifndef ICE_NO_DLL | ||
70 | #ifdef ICECORE_EXPORTS | ||
71 | #define ICECORE_API __declspec(dllexport) | ||
72 | #else | ||
73 | #define ICECORE_API __declspec(dllimport) | ||
74 | #endif | ||
75 | #else | ||
76 | #define ICECORE_API | ||
77 | #endif | ||
78 | |||
79 | // Don't override new/delete | ||
80 | // #define DEFAULT_NEWDELETE | ||
81 | #define DONT_TRACK_MEMORY_LEAKS | ||
82 | |||
83 | #define FUNCTION extern "C" | ||
84 | |||
85 | // Cosmetic stuff [mainly useful with multiple inheritance] | ||
86 | #define override(base_class) virtual | ||
87 | |||
88 | // Our own inline keyword, so that: | ||
89 | // - we can switch to __forceinline to check it's really better or not | ||
90 | // - we can remove __forceinline if the compiler doesn't support it | ||
91 | // #define inline_ __forceinline | ||
92 | // #define inline_ inline | ||
93 | |||
94 | // Contributed by Bruce Mitchener | ||
95 | #if defined(COMPILER_VISUAL_CPP) | ||
96 | #define inline_ __forceinline | ||
97 | // #define inline_ inline | ||
98 | #elif defined(__GNUC__) && __GNUC__ < 3 | ||
99 | #define inline_ inline | ||
100 | #elif defined(__GNUC__) | ||
101 | #define inline_ inline __attribute__ ((always_inline)) | ||
102 | #else | ||
103 | #define inline_ inline | ||
104 | #endif | ||
105 | |||
106 | // Down the hatch | ||
107 | #ifdef _MSC_VER | ||
108 | #pragma inline_depth( 255 ) | ||
109 | #endif | ||
110 | |||
111 | #ifdef COMPILER_VISUAL_CPP | ||
112 | #pragma intrinsic(memcmp) | ||
113 | #pragma intrinsic(memcpy) | ||
114 | #pragma intrinsic(memset) | ||
115 | #pragma intrinsic(strcat) | ||
116 | #pragma intrinsic(strcmp) | ||
117 | #pragma intrinsic(strcpy) | ||
118 | #pragma intrinsic(strlen) | ||
119 | #pragma intrinsic(abs) | ||
120 | #pragma intrinsic(labs) | ||
121 | #endif | ||
122 | |||
123 | // ANSI compliance | ||
124 | #ifdef _DEBUG | ||
125 | // Remove painful warning in debug | ||
126 | inline_ bool __False__(){ return false; } | ||
127 | #define for if(__False__()){} else for | ||
128 | #else | ||
129 | #define for if(0){} else for | ||
130 | #endif | ||
131 | |||
132 | #endif // __ICEPREPROCESSOR_H__ | ||