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__)
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_GNUC || 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 )
206# if defined( OGRE_NONCLIENT_BUILD )
207# define _OgreExport __declspec( dllexport )
209# if defined( __MINGW32__ )
212# define _OgreExport __declspec( dllimport )
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
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")))
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