121 lines
3.5 KiB
C
121 lines
3.5 KiB
C
#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 <winapifamily.h>
|
|
# 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
|