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)
53 #if !WINAPI_PARTITION_DESKTOP
54 #define FBXSDK_ENV_WINSTORE 1
57 #if WINAPI_FAMILY_ONE_PARTITION(WINAPI_FAMILY, WINAPI_PARTITION_APP)
58 #define FBXSDK_ENV_WINSTORE 1
64 #define FBXSDK_ARCH_AMD64 1
65 #define FBXSDK_CPU_64 1
66 #elif defined(_M_IX86)
67 #define FBXSDK_ARCH_IX86 1
68 #define FBXSDK_CPU_32 1
70 #define FBXSDK_ARCH_ARM 1
71 #define FBXSDK_CPU_32 1
73 #error Unsupported architecture!
77 #define FBXSDK_COMPILER_MSC 1
78 #elif defined(__GNUC__)
79 #define FBXSDK_COMPILER_GNU 1
81 #define FBXSDK_COMPILER_INTEL 1
83 #error Unsupported compiler!
86 #elif defined(__APPLE__) || defined(__MACH__) //Apple MacOS/X ---------------------------
88 #include "TargetConditionals.h"
90 #define FBXSDK_ENV_MAC 1
92 #if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
93 #define FBXSDK_ENV_IOS 1
97 #define FBXSDK_ARCH_IX86 1
98 #define FBXSDK_CPU_32 1
99 #elif defined(__x86_64__) || defined(__x86_64)
100 #define FBXSDK_ARCH_AMD64 1
101 #define FBXSDK_CPU_64 1
102 #elif defined(__arm__)
103 #define FBXSDK_ARCH_ARM 1
104 #define FBXSDK_CPU_32 1
105 #elif defined(__arm64__)
106 #define FBXSDK_ARCH_ARM 1
107 #define FBXSDK_CPU_64 1
109 #error Unsupported architecture!
112 #if defined(__GNUC__)
113 #define FBXSDK_COMPILER_GNU 1
116 #if defined(__clang__)
117 #define FBXSDK_COMPILER_CLANG 1
120 #if !defined(FBXSDK_COMPILER_GNU) && !defined(FBXSDK_COMPILER_CLANG)
121 #error Unsupported compiler!
124 #elif defined(__linux__) || defined(__CYGWIN__) //Linux ---------------------------------
126 #define FBXSDK_ENV_LINUX 1
128 #if defined(__i386__)
129 #define FBXSDK_ARCH_IX86 1
130 #define FBXSDK_CPU_32 1
131 #elif defined(__x86_64__) || defined(__x86_64)
132 #define FBXSDK_ARCH_AMD64 1
133 #define FBXSDK_CPU_64 1
134 #elif defined(__arm__)
135 #define FBXSDK_ARCH_ARM 1
136 #define FBXSDK_CPU_32 1
138 #error Unsupported architecture!
141 #if defined(__GNUC__)
142 #define FBXSDK_COMPILER_GNU 1
144 #error Unsupported compiler!
148 #error Unsupported platform!
153 #if defined(FBXSDK_SHARED)
154 #if defined(FBXSDK_COMPILER_MSC) || defined(FBXSDK_COMPILER_INTEL)
155 #define FBXSDK_DLLIMPORT __declspec(dllimport)
156 #define FBXSDK_DLLEXPORT __declspec(dllexport)
157 #elif defined(FBXSDK_COMPILER_GNU) && (__GNUC__ >= 4)
158 #define FBXSDK_DLLIMPORT __attribute__((visibility("default")))
159 #define FBXSDK_DLLEXPORT __attribute__((visibility("default")))
161 #define FBXSDK_DLLIMPORT
162 #define FBXSDK_DLLEXPORT
165 #define FBXSDK_DLLIMPORT
166 #define FBXSDK_DLLEXPORT
170 #define FBXSDK_DLL FBXSDK_DLLIMPORT
173 #if defined(FBXSDK_COMPILER_MSC)
174 #pragma warning(disable : 4251) //'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2'
175 #if _MSC_VER >= 1300 // 7.1
176 #define FBX_DEPRECATED __declspec(deprecated)
178 #define FBX_DEPRECATED
180 #elif defined(FBXSDK_COMPILER_GNU)
181 #define FBX_DEPRECATED __attribute__((deprecated))
182 #elif defined(FBXSDK_COMPILER_INTEL)
183 #if __INTEL_COMPILER >= 810
184 #define FBX_DEPRECATED __declspec(deprecated)
186 #define FBX_DEPRECATED
189 #error Unsupported compiler!
192 #ifdef FBXSDK_COMPILER_CLANG
193 #define FBX_UNUSED(p) _Pragma(FBX_STRINGIFY(unused(p)))
195 #define FBX_UNUSED(p) (void)(p)
201 #if defined(__GNUG__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8))
202 #define NULL (__null)
204 #if defined(__cplusplus)
207 #define NULL ((void*)0)
212 #if !defined(_MAX_PATH)
213 #define _MAX_PATH 260
216 #if defined(FBXSDK_ENV_WIN)
217 #define snprintf _snprintf //for stdio.h platform compatibility
220 #if !defined(FBXSDK_COMPILER_MSC)
222 #define strcmpi strcasecmp
225 #define stricmp strcasecmp
228 #define strncmpi strncasecmp
231 #define strnicmp strncasecmp