#ifndef HGL_PLATFORM_INCLUDE #define HGL_PLATFORM_INCLUDE #ifdef _DEBUG #define HGL_LIB_DEBUG_NAME "Debug" #else #define HGL_LIB_DEBUG_NAME "Release" #endif// #define HGL_MERGE32(a,b,c,d) (a|b<<8|c<<16|d<<24) #define HGL_OS_Windows HGL_MERGE32('W','i','n',' ') #define HGL_OS_macOS HGL_MERGE32('m','a','c',' ') #define HGL_OS_iOS HGL_MERGE32('i','O','S',' ') #define HGL_OS_FreeBSD HGL_MERGE32('F','B','S','D') #define HGL_OS_NetBSD HGL_MERGE32('N','B','S','D') #define HGL_OS_OpenBSD HGL_MERGE32('O','B','S','D') #define HGL_OS_Linux HGL_MERGE32('L','i','n','u') #define HGL_OS_Cygwin HGL_MERGE32('C','y','g','w') #define HGL_OS_PSP2 HGL_MERGE32('P','S','P','2') #define HGL_OS_PS4 HGL_MERGE32('P','S','4',' ') #define HGL_OS_AIX HGL_MERGE32('A','I','X',' ') #define HGL_OS_Android HGL_MERGE32('A','n','d','r') #define HGL_OS_Wasm HGL_MERGE32('W','a','s','m') #define HGL_CPU_X86_32 HGL_MERGE32('8','6','3','2') #define HGL_CPU_X86_64 HGL_MERGE32('8','6','6','4') #define HGL_CPU_MIPS HGL_MERGE32('M','I','P','S') #define HGL_CPU_MIPSel HGL_MERGE32('M','I','e','l') #define HGL_CPU_MIPS64 HGL_MERGE32('M','I','6','4') #define HGL_CPU_PowerPC HGL_MERGE32('P','P','C',' ') #define HGL_CPU_PowerPC64 HGL_MERGE32('P','P','6','4') #define HGL_CPU_Cell HGL_MERGE32('C','E','L','L') #define HGL_CPU_ARM7 HGL_MERGE32('A','R','M','7') #define HGL_CPU_ARM64 HGL_MERGE32('A','R','6','4') #define HGL_COMPILER_Microsoft HGL_MERGE32('M','S','C',' ') #define HGL_COMPILER_GNU HGL_MERGE32('G','N','U',' ') #define HGL_COMPILER_MinGW32 HGL_MERGE32('M','G','3','2') #define HGL_COMPILER_Intel HGL_MERGE32('I','n','t','e') #define HGL_COMPILER_IBM HGL_MERGE32('I','B','M',' ') #define HGL_COMPILER_DigitalMars HGL_MERGE32('D','i','M','a') #define HGL_COMPILER_LLVM HGL_MERGE32('L','L','V','M') #define HGL_COMPILER_PGI HGL_MERGE32('P','G','I',' ') #define HGL_BIG_ENDIAN 'B' #define HGL_LITTLE_ENDIAN 'L' #if defined(__amd64__) ||defined(__amd64) || \ defined(__x86_64__) ||defined(__x86_64) || \ defined(_M_AMD64) ||defined(_M_X64) #define HGL_CPU HGL_CPU_X86_64 #define HGL_CPU_NAME OS_TEXT("X86-64Bit") #define HGL_LIB_CPU_NAME OS_TEXT("x64") #define HGL_MIN_MEMORY_ALLOC_BYTES 8 #define HGL_ENDIAN HGL_LITTLE_ENDIAN #elif defined(i386) || defined(__i386__) || defined(__i386) ||defined(_M_IX86) #define HGL_CPU HGL_CPU_X86_32 #define HGL_CPU_NAME OS_TEXT("X86-32Bit") #define HGL_LIB_CPU_NAME OS_TEXT("x86") #define HGL_MIN_MEMORY_ALLOC_BYTES 4 #define HGL_ENDIAN HGL_LITTLE_ENDIAN #elif defined(_M_MIPS)||defined(_MIPS_ARCH)||defined(__mips__)||defined(__mips)||defined(mips)||defined(__MIPS__) #define HGL_MIN_MEMORY_ALLOC_BYTES 4 #ifdef __MIPSEL__ #define HGL_CPU HGL_CPU_MIPSel #define HGL_CPU_NAME OS_TEXT("MIPSel") #define HGL_LIB_CPU_NAME OS_TEXT("MIPSel") #define HGL_ENDIAN HGL_LITTLE_ENDIAN #else #define HGL_CPU HGL_CPU_MIPS #define HGL_CPU_NAME OS_TEXT("MIPS") #define HGL_LIB_CPU_NAME OS_TEXT("MIPS") #define HGL_ENDIAN HGL_BIG_ENDIAN #endif//__MIPSEL__ #elif defined(__mips64__)||defined(mips64) #define HGL_MIN_MEMORY_ALLOC_BYTES 8 #define HGL_CPU HGL_CPU_MIPS64 #define HGL_CPU_NAME OS_TEXT("MIPS64") #define HGL_LIB_CPU_NAME OS_TEXT("MIPS64") #define HGL_ENDIAN HGL_BIG_ENDIAN #elif defined(__powerpc__) || defined(__powerpc) \ ||defined(__POWERPC__) \ || defined(__ppc__) || defined(__PPC__) || defined(__ppc) \ || defined(_M_PPC) ||defined(_M_MPPC) \ || defined(_ARCH_PPC) || defined(_ARCH_PWR) #ifdef __PPU__ #define HGL_CPU HGL_CPU_Cell #define HGL_CPU_NAME OS_TEXT("Cell") #define HGL_LIB_CPU_NAME OS_TEXT("Cell") #else #ifdef defined(__ppc64__)||defined(__PPC64__)||defined(__powerpc64__) \ ||defined(_ARCH_PPC64)||defined(__64BIT__) #define HGL_CPU HGL_CPU_PowerPC64 #define HGL_CPU_NAME OS_TEXT("PowerPC64") #define HGL_LIB_CPU_NAME OS_TEXT("PowerPC64") #else #define HGL_CPU HGL_CPU_PowerPC #define HGL_CPU_NAME OS_TEXT("PowerPC") #define HGL_LIB_CPU_NAME OS_TEXT("PowerPC") #endif//PowerPC64 #endif #define HGL_MIN_MEMORY_ALLOC_BYTES 8 #define HGL_ENDIAN HGL_BIG_ENDIAN #elif defined(__arm__)||defined(__arm) \ ||defined(_ARM) \ ||defined(_M_ARM) \ ||defined(__ARM_ARCH__7__) \ ||defined(__ARM_ARCH__7A__) \ ||defined(__ARM_ARCH__7R__) \ ||defined(__ARM_ARCH__7M__) \ ||defined(__ARM_ARCH__7S__) #define HGL_CPU HGL_CPU_ARM7 #define HGL_CPU_NAME OS_TEXT("ARM7") #define HGL_LIB_CPU_NAME OS_TEXT("ARM7") #define HGL_MIN_MEMORY_ALLOC_BYTES 4 #define HGL_ENDIAN HGL_LITTLE_ENDIAN #elif defined(__aarch64__) #define HGL_CPU HGL_CPU_ARM64 #define HGL_CPU_NAME OS_TEXT("aarch64") #define HGL_LIB_CPU_NAME OS_TEXT("aarch64") #define HGL_MIN_MEMORY_ALLOC_BYTES 4 #define HGL_ENDIAN HGL_LITTLE_ENDIAN #elif defined(__wasm__) #error Not support WebAssembly.please wait update...... #define HGL_OS HGL_OS_Wasm #define HGL_COMPILER HGL_COMPILER_LLVM #else #error Not support the cpu. #endif #if HGL_ENDIAN == HGL_BIG_ENDIAN #define HGL_CPU_ENDIAN OS_TEXT("Big Endian") #else #define HGL_CPU_ENDIAN OS_TEXT("Little Endian") #endif//HGL_ENDIAN == HGL_BIG_ENDIAN #if defined(__WIN32__)||defined(_WIN32)||defined(WIN32)||defined(__WINDOWS__)||defined(__WIN64__)||defined(_WIN64)||defined(WIN64) #define HGL_OS HGL_OS_Windows #elif defined(__APPLE__)||defined(__MAC__)||defined(macintosh)||defined(__APPLE_CC__) #define HGL_OS_BSD 1 #include "TargetConditionals.h" #if TARGET_OS_IPHONE #if TARGET_IPHONE_SIMULATOR #define HGL_OS HGL_OS_iOS_Simulator #else #define HGL_OS HGL_OS_iOS #endif//TARGET_IPHONE_SIMULATOR #elif TARGET_OS_MAC #define HGL_OS HGL_OS_macOS #endif// #elif defined(__ANDROID__) #define HGL_OS HGL_OS_Android #elif defined(__FreeBSD)||defined(__FreeBSD__) #define HGL_OS HGL_OS_FreeBSD #define HGL_OS_BSD 1 #elif defined(__NetBSD)||defined(__NetBSD__) #define HGL_OS HGL_OS_NetBSD #define HGL_OS_BSD 1 #elif defined(__OPENBSD)||defined(__OpenBSD__) #define HGL_OS HGL_OS_OpenBSD #define HGL_OS_BSD 1 #elif defined(__linux__)||defined(__LINUX__)||defined(linux)||defined(__linux) #define HGL_OS HGL_OS_Linux #elif defined(__CYGWIN__) #define HGL_OS HGL_OS_Cygwin #elif defined(SN_TARGET_PSP2)||defined(__PSV__)||defined(__psv__)||defined(_PSV)||defined(__PSVita__)||defined(__PSVita) #define HGL_OS HGL_OS_PSP2 #elif defined(SN_TARGET_ORBIS) #define HGL_OS HGL_OS_PS4 #elif defined(_AIX)||defined(__AIX)||defined(__AIX__)||defined(__aix)||defined(__aix__) #define HGL_OS HGL_OS_AIX #endif// #if defined(__clang__) #define HGL_COMPILER HGL_COMPILER_LLVM #elif defined(__INTEL_COMPILER)||defined(__ECL)||defined(__ICL)||defined(__ICC) #define HGL_COMPILER HGL_COMPILER_Intel #elif defined(__IBMC__)||defined(__IBMCPP__) #define HGL_COMPILER HGL_COMPILER_IBM #elif defined(__DMC__)||defined(__SC__)||defined(__ZTC__) #define HGL_COMPILER HGL_COMPILER_DigitalMars #elif defined(_MSC_VER) #define HGL_COMPILER HGL_COMPILER_Microsoft #elif defined(__PGI) #define HGL_COMPILER HGL_COMPILER_PGI #elif defined(__MINGW32__) #define HGL_COMPILER HGL_COMPILER_MinGW32 #elif defined(__GNUC__) #define HGL_COMPILER HGL_COMPILER_GNU #else #error Can not support the Compiler. #endif// #if defined(SetEventCall)||defined(SafeCallEvent)||defined(CallEvent)||defined(DefEvent) #error SetEventCall,SafeCallEvent,CallEvent,DefEvent 其中之一已经定义 #endif// #if defined(Property)||defined(PropertyRead)||defined(PropertyWrite) #error Property,PropertyRead,PropertyWrite 其中之一已经定义 #endif// // #ifndef UNICODE // #define UNICODE //定义使用UNICODE编码 // #endif//UNICODE #if HGL_OS == HGL_OS_Windows #include #if HGL_COMPILER == HGL_COMPILER_Microsoft #include #elif HGL_COMPILER == HGL_COMPILER_LLVM #include #elif HGL_COMPILER == HGL_COMPILER_Intel #include #elif HGL_COMPILER == HGL_COMPILER_IBM #include #elif HGL_COMPILER == HGL_COMPILER_MINGW32 #include #elif HGL_COMPILER == HGL_COMPILER_GNU #include #else #error Unrecognized compiler #endif #elif HGL_OS == HGL_OS_Cygwin #include #if HGL_COMPILER == HGL_COMPILER_LLVM #include #elif HGL_COMPILER == HGL_COMPILER_GNU #include #else #error Unrecognized compiler #endif//GNU #elif (HGL_OS == HGL_OS_FreeBSD)||(HGL_OS == HGL_OS_NetBSD)||(HGL_OS == HGL_OS_OpenBSD) #include #if HGL_COMPILER == HGL_COMPILER_LLVM #include #elif HGL_COMPILER == HGL_COMPILER_GNU #include #else #error Unrecognized compiler #endif//GNU #elif HGL_OS == HGL_OS_Linux #include #if HGL_COMPILER == HGL_COMPILER_CBuilder #include #elif HGL_COMPILER == HGL_COMPILER_Intel #include #elif HGL_COMPILER == HGL_COMPILER_IBM #include #elif HGL_COMPILER == HGL_COMPILER_Watcom #include #elif HGL_COMPILER == HGL_COMPILER_LLVM #include #elif HGL_COMPILER == HGL_COMPILER_GNU #include #else #error Unrecognized compiler #endif #elif HGL_OS == HGL_OS_macOS #include #if HGL_COMPILER == HGL_COMPILER_Intel #include #elif HGL_COMPILER == HGL_COMPILER_LLVM #include #else #error Unrecognized compiler #endif #elif HGL_OS == HGL_OS_iOS #include #include #elif HGL_OS == HGL_OS_PSP2 #include #if HGL_COMPILER == HGL_COMPILER_GNU #include #else #error Unrecognized compiler #endif #elif HGL_OS == HGL_OS_AIX #include #if HGL_COMPILER == HGL_COMPILER_IBM #include #elif HGL_COMPILER == HGL_COMPILER_SGI #include #elif HGL_COMPILER == HGL_COMPILER_GNU #include #else #error Unrecognized compiler #endif #elif HGL_OS == HGL_OS_Android #include #if HGL_COMPILER == HGL_COMPILER_LLVM #include #elif HGL_COMPILER == HGL_COMPILER_GNU #include #else #error Unrecognized compiler #endif//GNU #endif//HGL_OS namespace hgl { #define HGL_WINDOW_DIRECTORY_SEPARATOR OS_TEXT('\\') #define HGL_UNIX_DIRECTORY_SPEARATOR OS_TEXT('/') }//namespace hgl #endif//HGL_PLATFORM_INCLUDE