#pragma once /* //possible platform versions //note the fixed point XX.XX format, so that we can compare versions #define TL_PLATFORM_VERSION_8_0 800 #define TL_PLATFORM_VERSION_8_1 810 #define TL_PLATFORM_VERSION_10_0 1000 //actual version #define TL_PLATFORM_VERSION TL_PLATFORM_VERSION_8_0 */ ////////////////////////////////////////////////////////////////////////// //PLATFORM ////////////////////////////////////////////////////////////////////////// # if defined (__arm64__) || defined (__aarch64__) || defined(_M_ARM64) # define TL_PLATFORM_64 # define TL_PLATFORM_ARCHITECTURE_ARM64 # elif defined(__arm__) || defined(_M_ARM) # define TL_PLATFORM_32 # define TL_PLATFORM_ARCHITECTURE_ARM32 # elif defined(__i386__) || defined(_M_IX86) # define TL_PLATFORM_32 # define TL_PLATFORM_ARCHITECTURE_X86 # elif defined(__x86_64__) || defined(_M_AMD64) # define TL_PLATFORM_64 # define TL_PLATFORM_ARCHITECTURE_AMD64 # else # pragma error "Unrecognized architecture " # endif ////////////////////////////////////////////////////////////////////////// //ANDROID ////////////////////////////////////////////////////////////////////////// #if defined (__ANDROID__) # define TL_PLATFORM_POSIX_THREADS_API # define TL_PLATFORM_ANDROID_FAMILY # define TL_PLATFORM_ANDROID_APP # define TL_PLATFORM_POSIX_API #elif defined(_WIN32) || defined(_WIN64) || defined(__MINGW64__) # define TL_PLATFORM_WINDOWS_FAMILY # define TL_PLATFORM_WIN_API # define TL_PLATFORM_WINDOWS_THREADS_API # if defined(_MSC_VER) # pragma warning(disable:4100) # pragma warning(disable:4251) # endif # if defined(WINAPI_FAMILY) # include # if (WINAPI_FAMILY == WINAPI_FAMILY_PC_APP) ////////////////////////////////////////////////////////////////////////// // WINDOWS STORE ////////////////////////////////////////////////////////////////////////// # define TL_PLATFORM_WINDOWS_STORE_APP # elif (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) ////////////////////////////////////////////////////////////////////////// // WINDOWS PHONE //////////////////////////////////////////////////////////////////////////s # define TL_PLATFORM_WINDOWS_PHONE_APP # else ////////////////////////////////////////////////////////////////////////// // WINDOWS ////////////////////////////////////////////////////////////////////////// # define TL_PLATFORM_WINDOWS_DESKTOP_APP # endif # else # define TL_PLATFORM_WINDOWS_DESKTOP_APP # endif //no posix here unfortunately ////////////////////////////////////////////////////////////////////////// //IOS ////////////////////////////////////////////////////////////////////////// #elif defined(__APPLE__) || defined(MACOSX) # include "TargetConditionals.h" # define TL_PLATFORM_POSIX_THREADS_API # define TL_PLATFORM_OSX_FAMILY # define TL_PLATFORM_POSIX_API # if (TARGET_IPHONE_SIMULATOR) # define TL_PLATFORM_IOS_FAMILY # define TL_PLATFORM_IOS_SIMULATOR_APP # elif (TARGET_OS_IPHONE) # define TL_PLATFORM_IOS_FAMILY # define TL_PLATFORM_IOS_APP # if(TARGET_OS_MACCATALYST) # define TL_PLATFORM_CATALYST # endif # elif (TARGET_OS_MAC) # define TL_PLATFORM_MAC_APP # else # error "Unknown Platform" # endif ////////////////////////////////////////////////////////////////////////// //LINUX ////////////////////////////////////////////////////////////////////////// #elif defined (__linux) # define TL_PLATFORM_LINUX_FAMILY # define TL_PLATFORM_LINUX_APP # define TL_PLATFORM_POSIX_API # define TL_PLATFORM_POSIX_THREADS_API #else # error Unrecognized platform. #endif