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