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
63 #elif defined(_M_ARM64)
64 #define FBXSDK_ARCH_ARM 1
65 #define FBXSDK_CPU_64 1
67 #error Unsupported architecture!
71 #define FBXSDK_COMPILER_MSC 1
72 #elif defined(__GNUC__)
73 #define FBXSDK_COMPILER_GNU 1
75 #define FBXSDK_COMPILER_INTEL 1
77 #error Unsupported compiler!
80 #elif defined(__APPLE__) || defined(__MACH__) //Apple MacOS/X ---------------------------
82 #include "TargetConditionals.h"
84 #define FBXSDK_ENV_MAC 1
86 #if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
87 #define FBXSDK_ENV_IOS 1
91 #define FBXSDK_ARCH_IX86 1
92 #define FBXSDK_CPU_32 1
93 #elif defined(__x86_64__) || defined(__x86_64)
94 #define FBXSDK_ARCH_AMD64 1
95 #define FBXSDK_CPU_64 1
96 #elif defined(__arm__)
97 #define FBXSDK_ARCH_ARM 1
98 #define FBXSDK_CPU_32 1
99 #elif defined(__arm64__)
100 #define FBXSDK_ARCH_ARM 1
101 #define FBXSDK_CPU_64 1
103 #error Unsupported architecture!
106 #if defined(__GNUC__)
107 #define FBXSDK_COMPILER_GNU 1
110 #if defined(__clang__)
111 #define FBXSDK_COMPILER_CLANG 1
114 #if !defined(FBXSDK_COMPILER_GNU) && !defined(FBXSDK_COMPILER_CLANG)
115 #error Unsupported compiler!
118 #elif defined(__linux__) || defined(__CYGWIN__) || defined(EMSCRIPTEN) || defined(ANDROID) //Linux ---------------------------------
120 #define FBXSDK_ENV_LINUX 1
122 #if defined(EMSCRIPTEN)
123 #define FBXSDK_ENV_EMSCRIPTEN 1
127 #define FBXSDK_ENV_ANDROID 1
130 #if defined(__i386__)
131 #define FBXSDK_ARCH_IX86 1
132 #define FBXSDK_CPU_32 1
133 #elif defined(__x86_64__) || defined(__x86_64)
134 #define FBXSDK_ARCH_AMD64 1
135 #define FBXSDK_CPU_64 1
136 #elif defined(__arm__)
137 #define FBXSDK_ARCH_ARM 1
138 #define FBXSDK_CPU_32 1
139 #elif defined(EMSCRIPTEN)
140 #define FBXSDK_ARCH_AMD64 1
141 #define FBXSDK_CPU_64 1
143 #error Unsupported architecture!
146 #if defined(__GNUC__)
147 #define FBXSDK_COMPILER_GNU 1
148 #elif defined(EMSCRIPTEN)
149 #define FBXSDK_COMPILER_EMSCRIPTEN 1
151 #error Unsupported compiler!
154 #error Unsupported platform!
159 #if defined(FBXSDK_SHARED)
160 #if defined(FBXSDK_COMPILER_MSC) || defined(FBXSDK_COMPILER_INTEL)
161 #define FBXSDK_DLLIMPORT __declspec(dllimport)
162 #define FBXSDK_DLLEXPORT __declspec(dllexport)
163 #elif defined(FBXSDK_COMPILER_GNU) && (__GNUC__ >= 4)
164 #define FBXSDK_DLLIMPORT __attribute__((visibility("default")))
165 #define FBXSDK_DLLEXPORT __attribute__((visibility("default")))
167 #define FBXSDK_DLLIMPORT
168 #define FBXSDK_DLLEXPORT
171 #define FBXSDK_DLLIMPORT
172 #define FBXSDK_DLLEXPORT
176 #define FBXSDK_DLL FBXSDK_DLLIMPORT
179 #if defined(FBXSDK_COMPILER_MSC)
180 #pragma warning(disable : 4251) //'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2'
181 #if _MSC_VER >= 1300 // 7.1
182 #define FBX_DEPRECATED __declspec(deprecated)
184 #define FBX_DEPRECATED
186 #elif defined(FBXSDK_COMPILER_GNU) || defined(FBXSDK_COMPILER_EMSCRIPTEN)
187 #define FBX_DEPRECATED __attribute__((deprecated))
188 #elif defined(FBXSDK_COMPILER_INTEL)
189 #if __INTEL_COMPILER >= 810
190 #define FBX_DEPRECATED __declspec(deprecated)
192 #define FBX_DEPRECATED
195 #error Unsupported compiler!
198 #ifdef FBXSDK_COMPILER_CLANG
199 #define FBX_UNUSED(p) _Pragma(FBX_STRINGIFY(unused(p)))
201 #define FBX_UNUSED(p) (void)(p)
207 #if defined(__GNUG__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8))
208 #define NULL (__null)
210 #if defined(__cplusplus)
213 #define NULL ((void*)0)
218 #if !defined(_MAX_PATH)
219 #define _MAX_PATH 260
222 #if !defined(FBXSDK_COMPILER_MSC)
224 #define strcmpi strcasecmp
227 #define stricmp strcasecmp
230 #define strncmpi strncasecmp
233 #define strnicmp strncasecmp