fbxsdk/core/arch/fbxarch.h Source File
Go to the documentation of this file.
43 #ifndef _FBXSDK_CORE_ARCH_ARCH_H_
44 #define _FBXSDK_CORE_ARCH_ARCH_H_
46 #if defined(_WIN32) || defined(_WIN64) //Microsoft Windows ------------------------------
48 #define FBXSDK_ENV_WIN 1
50 #if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP)
51 #define FBXSDK_ENV_WINSTORE 1
55 #define FBXSDK_ARCH_AMD64 1
56 #define FBXSDK_CPU_64 1
57 #elif defined(_M_IX86)
58 #define FBXSDK_ARCH_IX86 1
59 #define FBXSDK_CPU_32 1
61 #define FBXSDK_ARCH_ARM 1
62 #define FBXSDK_CPU_32 1
64 #error Unsupported architecture!
68 #define FBXSDK_COMPILER_MSC 1
69 #elif defined(__GNUC__)
70 #define FBXSDK_COMPILER_GNU 1
72 #define FBXSDK_COMPILER_INTEL 1
74 #error Unsupported compiler!
77 #elif defined(__APPLE__) || defined(__MACH__) //Apple MacOS/X ---------------------------
79 #include "TargetConditionals.h"
81 #define FBXSDK_ENV_MAC 1
83 #if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
84 #define FBXSDK_ENV_IOS 1
88 #define FBXSDK_ARCH_IX86 1
89 #define FBXSDK_CPU_32 1
90 #elif defined(__x86_64__) || defined(__x86_64)
91 #define FBXSDK_ARCH_AMD64 1
92 #define FBXSDK_CPU_64 1
93 #elif defined(__arm__)
94 #define FBXSDK_ARCH_ARM 1
95 #define FBXSDK_CPU_32 1
96 #elif defined(__arm64__)
97 #define FBXSDK_ARCH_ARM 1
98 #define FBXSDK_CPU_64 1
100 #error Unsupported architecture!
103 #if defined(__GNUC__)
104 #define FBXSDK_COMPILER_GNU 1
107 #if defined(__clang__)
108 #define FBXSDK_COMPILER_CLANG 1
111 #if !defined(FBXSDK_COMPILER_GNU) && !defined(FBXSDK_COMPILER_CLANG)
112 #error Unsupported compiler!
115 #elif defined(__linux__) || defined(__CYGWIN__) || defined(EMSCRIPTEN) || defined(ANDROID) //Linux ---------------------------------
117 #define FBXSDK_ENV_LINUX 1
119 #if defined(EMSCRIPTEN)
120 #define FBXSDK_ENV_EMSCRIPTEN 1
124 #define FBXSDK_ENV_ANDROID 1
127 #if defined(__i386__)
128 #define FBXSDK_ARCH_IX86 1
129 #define FBXSDK_CPU_32 1
130 #elif defined(__x86_64__) || defined(__x86_64)
131 #define FBXSDK_ARCH_AMD64 1
132 #define FBXSDK_CPU_64 1
133 #elif defined(__arm__)
134 #define FBXSDK_ARCH_ARM 1
135 #define FBXSDK_CPU_32 1
136 #elif defined(EMSCRIPTEN)
137 #define FBXSDK_ARCH_AMD64 1
138 #define FBXSDK_CPU_64 1
140 #error Unsupported architecture!
143 #if defined(__GNUC__)
144 #define FBXSDK_COMPILER_GNU 1
145 #elif defined(EMSCRIPTEN)
146 #define FBXSDK_COMPILER_EMSCRIPTEN 1
148 #error Unsupported compiler!
151 #error Unsupported platform!
156 #if defined(FBXSDK_SHARED)
157 #if defined(FBXSDK_COMPILER_MSC) || defined(FBXSDK_COMPILER_INTEL)
158 #define FBXSDK_DLLIMPORT __declspec(dllimport)
159 #define FBXSDK_DLLEXPORT __declspec(dllexport)
160 #elif defined(FBXSDK_COMPILER_GNU) && (__GNUC__ >= 4)
161 #define FBXSDK_DLLIMPORT __attribute__((visibility("default")))
162 #define FBXSDK_DLLEXPORT __attribute__((visibility("default")))
164 #define FBXSDK_DLLIMPORT
165 #define FBXSDK_DLLEXPORT
168 #define FBXSDK_DLLIMPORT
169 #define FBXSDK_DLLEXPORT
173 #define FBXSDK_DLL FBXSDK_DLLIMPORT
176 #if defined(FBXSDK_COMPILER_MSC)
177 #pragma warning(disable : 4251) //'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2'
178 #if _MSC_VER >= 1300 // 7.1
179 #define FBX_DEPRECATED __declspec(deprecated)
181 #define FBX_DEPRECATED
183 #elif defined(FBXSDK_COMPILER_GNU) || defined(FBXSDK_COMPILER_EMSCRIPTEN)
184 #define FBX_DEPRECATED __attribute__((deprecated))
185 #elif defined(FBXSDK_COMPILER_INTEL)
186 #if __INTEL_COMPILER >= 810
187 #define FBX_DEPRECATED __declspec(deprecated)
189 #define FBX_DEPRECATED
192 #error Unsupported compiler!
195 #ifdef FBXSDK_COMPILER_CLANG
196 #define FBX_UNUSED(p) _Pragma(FBX_STRINGIFY(unused(p)))
198 #define FBX_UNUSED(p) (void)(p)
204 #if defined(__GNUG__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8))
205 #define NULL (__null)
207 #if defined(__cplusplus)
210 #define NULL ((void*)0)
215 #if !defined(_MAX_PATH)
216 #define _MAX_PATH 260
219 #if defined(FBXSDK_ENV_WIN)
220 #define snprintf _snprintf //for stdio.h platform compatibility
223 #if !defined(FBXSDK_COMPILER_MSC)
225 #define strcmpi strcasecmp
228 #define stricmp strcasecmp
231 #define strncmpi strncasecmp
234 #define strnicmp strncasecmp