36 #define OGRE_PLATFORM_WIN32 1
37 #define OGRE_PLATFORM_LINUX 2
38 #define OGRE_PLATFORM_APPLE 3
39 #define OGRE_PLATFORM_APPLE_IOS 4
40 #define OGRE_PLATFORM_ANDROID 5
41 #define OGRE_PLATFORM_NACL 6
42 #define OGRE_PLATFORM_WINRT 7
43 #define OGRE_PLATFORM_FLASHCC 8
45 #define OGRE_COMPILER_MSVC 1
46 #define OGRE_COMPILER_GNUC 2
47 #define OGRE_COMPILER_BORL 3
48 #define OGRE_COMPILER_WINSCW 4
49 #define OGRE_COMPILER_GCCE 5
50 #define OGRE_COMPILER_CLANG 6
52 #define OGRE_ENDIAN_LITTLE 1
53 #define OGRE_ENDIAN_BIG 2
55 #define OGRE_ARCHITECTURE_32 1
56 #define OGRE_ARCHITECTURE_64 2
60 #if (defined( __WIN32__ ) || defined( _WIN32 )) && defined(__ANDROID__) // We are using NVTegra
61 # define OGRE_COMPILER OGRE_COMPILER_GNUC
62 # define OGRE_COMP_VER 470
63 #elif defined( __GCCE__ )
64 # define OGRE_COMPILER OGRE_COMPILER_GCCE
65 # define OGRE_COMP_VER _MSC_VER
67 #elif defined( __WINSCW__ )
68 # define OGRE_COMPILER OGRE_COMPILER_WINSCW
69 # define OGRE_COMP_VER _MSC_VER
70 #elif defined( _MSC_VER )
71 # define OGRE_COMPILER OGRE_COMPILER_MSVC
72 # define OGRE_COMP_VER _MSC_VER
73 #elif defined( __clang__ )
74 # define OGRE_COMPILER OGRE_COMPILER_CLANG
75 # define OGRE_COMP_VER (((__clang_major__)*100) + \
76 (__clang_minor__*10) + \
78 #elif defined( __GNUC__ )
79 # define OGRE_COMPILER OGRE_COMPILER_GNUC
80 # define OGRE_COMP_VER (((__GNUC__)*100) + \
81 (__GNUC_MINOR__*10) + \
83 #elif defined( __BORLANDC__ )
84 # define OGRE_COMPILER OGRE_COMPILER_BORL
85 # define OGRE_COMP_VER __BCPLUSPLUS__
86 # define __FUNCTION__ __FUNC__
88 # pragma error "No known compiler. Abort! Abort!"
93 #if OGRE_COMPILER == OGRE_COMPILER_MSVC
94 # if OGRE_COMP_VER >= 1200
95 # define FORCEINLINE __forceinline
97 #elif defined(__MINGW32__)
98 # if !defined(FORCEINLINE)
99 # define FORCEINLINE __inline
102 # define FORCEINLINE __inline
106 #if OGRE_COMPILER == OGRE_COMPILER_MSVC
107 # define OGRE_NORETURN __declspec(noreturn)
108 #elif OGRE_COMPILER == OGRE_COMPILER_GCC || OGRE_COMPILER == OGRE_COMPILER_CLANG
109 # define OGRE_NORETURN __attribute__((noreturn))
111 # define OGRE_NORETURN
115 #if (defined( __WIN32__ ) || defined( _WIN32 )) && !defined(__ANDROID__)
116 # if defined(WINAPI_FAMILY)
117 # define __OGRE_HAVE_DIRECTXMATH 1
118 # include <winapifamily.h>
119 # if WINAPI_FAMILY == WINAPI_FAMILY_APP|| WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
120 # define DESKTOP_APP 1
122 # define OGRE_PLATFORM OGRE_PLATFORM_WINRT
123 # ifndef _CRT_SECURE_NO_WARNINGS
124 # define _CRT_SECURE_NO_WARNINGS
126 # ifndef _SCL_SECURE_NO_WARNINGS
127 # define _SCL_SECURE_NO_WARNINGS
129 # if WINAPI_FAMILY == WINAPI_FAMILY_APP
130 # define OGRE_WINRT_TARGET_TYPE DESKTOP_APP
132 # if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
133 # define OGRE_WINRT_TARGET_TYPE PHONE
136 # define OGRE_PLATFORM OGRE_PLATFORM_WIN32
139 # define OGRE_PLATFORM OGRE_PLATFORM_WIN32
141 #elif defined(__FLASHCC__)
142 # define OGRE_PLATFORM OGRE_PLATFORM_FLASHCC
143 #elif defined( __APPLE_CC__)
146 # if __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 60000 || __IPHONE_OS_VERSION_MIN_REQUIRED >= 60000
147 # define OGRE_PLATFORM OGRE_PLATFORM_APPLE_IOS
149 # define OGRE_PLATFORM OGRE_PLATFORM_APPLE
151 #elif defined(__ANDROID__)
152 # define OGRE_PLATFORM OGRE_PLATFORM_ANDROID
153 #elif defined( __native_client__ )
154 # define OGRE_PLATFORM OGRE_PLATFORM_NACL
155 # ifndef OGRE_STATIC_LIB
156 # error OGRE must be built as static for NaCl (OGRE_STATIC=true in CMake)
158 # ifdef OGRE_BUILD_RENDERSYSTEM_D3D9
159 # error D3D9 is not supported on NaCl (OGRE_BUILD_RENDERSYSTEM_D3D9 false in CMake)
161 # ifdef OGRE_BUILD_RENDERSYSTEM_GL
162 # error OpenGL is not supported on NaCl (OGRE_BUILD_RENDERSYSTEM_GL=false in CMake)
164 # ifndef OGRE_BUILD_RENDERSYSTEM_GLES2
165 # error GLES2 render system is required for NaCl (OGRE_BUILD_RENDERSYSTEM_GLES2=false in CMake)
168 # define OGRE_PLATFORM OGRE_PLATFORM_LINUX
172 #if defined(__x86_64__) || defined(_M_X64) || defined(__powerpc64__) || defined(__alpha__) || defined(__ia64__) || defined(__s390__) || defined(__s390x__) || defined(__arm64__) || defined(_aarch64_) || defined(__mips64) || defined(__mips64_)
173 # define OGRE_ARCH_TYPE OGRE_ARCHITECTURE_64
175 # define OGRE_ARCH_TYPE OGRE_ARCHITECTURE_32
181 #define OGRE_QUOTE_INPLACE(x) # x
182 #define OGRE_QUOTE(x) OGRE_QUOTE_INPLACE(x)
183 #define OGRE_WARN( x ) message( __FILE__ "(" QUOTE( __LINE__ ) ") : " x "\n" )
186 #if OGRE_COMPILER == OGRE_COMPILER_MSVC
187 # define OGRE_DEPRECATED __declspec(deprecated)
188 #elif OGRE_COMPILER == OGRE_COMPILER_GNUC || OGRE_COMPILER == OGRE_COMPILER_CLANG
189 # define OGRE_DEPRECATED __attribute__ ((deprecated))
191 # pragma message("WARNING: You need to implement OGRE_DEPRECATED for this compiler")
192 # define OGRE_DEPRECATED
197 #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WINRT
201 # if defined( OGRE_STATIC_LIB )
204 # define _OgrePrivate
206 # if defined( OGRE_NONCLIENT_BUILD )
207 # define _OgreExport __declspec( dllexport )
209 # if defined( __MINGW32__ )
212 # define _OgreExport __declspec( dllimport )
215 # define _OgrePrivate
219 # if defined(_DEBUG) || defined(DEBUG)
220 # define OGRE_DEBUG_MODE 1
222 # define OGRE_DEBUG_MODE 0
229 #if defined(__MINGW32__)
230 # if OGRE_COMP_VER < 400
231 # if !defined(_STLPORT_VERSION)
233 # if defined(__MINGW32_TOOLBOX_UNICODE__) || OGRE_COMP_VER > 345
234 # define OGRE_UNICODE_SUPPORT 1
236 # define OGRE_UNICODE_SUPPORT 0
239 # define OGRE_UNICODE_SUPPORT 1
242 # define OGRE_UNICODE_SUPPORT 1
245 # define OGRE_UNICODE_SUPPORT 1
248 #endif // OGRE_PLATFORM == OGRE_PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WINRT
252 #if OGRE_PLATFORM == OGRE_PLATFORM_LINUX || OGRE_PLATFORM == OGRE_PLATFORM_APPLE || OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS || \
253 OGRE_PLATFORM == OGRE_PLATFORM_ANDROID || OGRE_PLATFORM == OGRE_PLATFORM_NACL || OGRE_PLATFORM == OGRE_PLATFORM_FLASHCC
256 # if defined( OGRE_GCC_VISIBILITY )
257 # define _OgreExport __attribute__ ((visibility("default")))
258 # define _OgrePrivate __attribute__ ((visibility("hidden")))
261 # define _OgrePrivate
265 # define stricmp strcasecmp
268 # define OGRE_DEBUG_MODE 1
270 # define OGRE_DEBUG_MODE 0
275 #define OGRE_UNICODE_SUPPORT 1
281 #if OGRE_PLATFORM == OGRE_PLATFORM_ANDROID
282 # ifdef OGRE_UNICODE_SUPPORT
283 # undef OGRE_UNICODE_SUPPORT
285 # define OGRE_UNICODE_SUPPORT 1
287 # define stricmp strcasecmp
289 # define OGRE_DEBUG_MODE 1
291 # define OGRE_DEBUG_MODE 0
293 # ifndef CLOCKS_PER_SEC
294 # define CLOCKS_PER_SEC 1000
300 #if OGRE_PLATFORM == OGRE_PLATFORM_FLASHCC
301 # ifdef OGRE_UNICODE_SUPPORT
302 # undef OGRE_UNICODE_SUPPORT
304 # define OGRE_UNICODE_SUPPORT 0
306 # define OGRE_DEBUG_MODE 1
308 # define OGRE_DEBUG_MODE 0
312 #ifndef __OGRE_HAVE_DIRECTXMATH
313 # define __OGRE_HAVE_DIRECTXMATH 0
319 #ifdef OGRE_CONFIG_BIG_ENDIAN
320 # define OGRE_ENDIAN OGRE_ENDIAN_BIG
322 # define OGRE_ENDIAN OGRE_ENDIAN_LITTLE
327 #if OGRE_PLATFORM == OGRE_PLATFORM_ANDROID
329 # define OGRE_DEFAULT_LOCALE ""
331 # define OGRE_DEFAULT_LOCALE "C"
338 # define OGRE_BUILD_SUFFIX "_d"
340 # define OGRE_BUILD_SUFFIX ""
351 #if OGRE_COMPILER == OGRE_COMPILER_MSVC
352 typedef unsigned __int64
uint64;
353 typedef __int64
int64;
360 #if OGRE_COMPILER == OGRE_COMPILER_MSVC
361 #ifndef _CRT_SECURE_NO_WARNINGS
362 # define _CRT_SECURE_NO_WARNINGS
364 #ifndef _SCL_SECURE_NO_WARNINGS
365 # define _SCL_SECURE_NO_WARNINGS
369 # pragma warning (disable : 4786)
372 # pragma warning (disable : 4503)
375 # pragma warning (disable : 4251)
379 # pragma warning (disable : 4275)
383 # pragma warning( disable : 4290 )
387 # pragma warning( disable: 4661)
393 # pragma warning( disable: 4996)
396 # pragma warning (disable : 201)
399 # pragma warning (disable : 4100)
402 # pragma warning (disable : 4345)
unsigned long long uint64