Update 'AuroraEnvironment.hpp'

[+] added additional EPlatform reserve spaces for future consoles
[+] Aurora Enum awareness, so long as the includee can handle the overhead of AuroraEnums (hint: include AuroraRuntime.hpp first, if you're in that ecosystem)
This commit is contained in:
Reece Wilson 2022-01-25 00:53:18 +00:00
parent 7e04d9ac97
commit 07b229a4bb

View File

@ -14,50 +14,128 @@ extern "C"
#include "AuroraEnvironment.h"
}
#if defined(_AUHAS_AURORAENUM) && defined(_ALLOW_AURORA_ENUM_AUENVHPP)
#include <AuroraForEach.hpp>
#include <AuroraEnum.hpp>
#define AUENVHPP_START_ENUM(platform, ...) \
AUE_DEFINE(platform, (__VA_ARGS__))
#else
#define AUENVHPP_START_ENUM(platform, ...) \
enum class platform \
{ \
eEnumInvalid = -1, \
__VA_ARGS__ \
};
#endif
namespace Aurora::Build
{
enum class ECompiler
{
eInvaild = -1,
AUENVHPP_START_ENUM(ECompiler,
eMSVC,
eClang,
eGCC
};
eGCC,
eIntelInside
);
#if defined(AURORA_COMPILER_CLANG)
static const ECompiler kCurrentECompiler = ECompiler::eClang;
static const ECompiler kCurrentCompiler = ECompiler::eClang;
#elif defined(AURORA_COMPILER_MSVC)
static const ECompiler kCurrentECompiler = ECompiler::eMSVC;
static const ECompiler kCurrentCompiler = ECompiler::eMSVC;
#elif defined(AURORA_COMPILER_GCC)
static const ECompiler kCurrentECompiler = ECompiler::eGCC;
static const ECompiler kCurrentCompiler = ECompiler::eGCC;
#elif defined(AURORA_COMPILER_INTEL)
static const ECompiler kCurrentCompiler = ECompiler::eIntelInside;
#else
static const ECompiler kCurrentECompiler = ECompiler::eInvaild;
static const ECompiler kCurrentCompiler = ECompiler::eEnumInvalid;
#endif
enum class EPlatform
enum class EPlatformLTS
{
eInvalid = -1,
eKernelLinux,
eKernelBsd,
eKernelNtos,
ePlatformWin32,
eKernelReserved1,
eKernelReserved2,
eKernelReserved3,
ePlatformWin32, // including padding for future OSes
ePlatformUWP,
ePlatformBSD,
ePlatformAndroid,
ePlatformLinux,
ePlatformApple,
ePlatformAppleMacOS,
ePlatformIos,
ePlatformSwitch,
ePlatformRTOS,
ePlatformNX,
ePlatformPS4,
ePlatformPS5,
ePlatformPS6,
ePlatformPS7,
ePlatformXbone,
ePlatformXbone2020,
ePlatformXboneReserved,
ePlatformXboneReserved2,
ePlatformXboneReserved3,
ePlatformNxPlusOne,
ePlatformNxPlusTwo,
ePlatformNxPlusThree,
ePlatformUWPAlt1,
ePlatformUWPAlt2,
ePlatformAppleAlt1,
ePlatformAppleAlt2,
ePlatformWii,
ePlatformWiiU
ePlatformWiiU,
ePlatformMCU = 60,
ePlatformMPU = 70,
ePlatformUserReserved1 = 100,
ePlatformUserReserved2,
ePlatformUserReserved3,
};
AUENVHPP_START_ENUM(EPlatform,
eKernelLinux,
eKernelBsd,
eKernelNtos,
eKernelReserved1,
eKernelReserved2,
eKernelReserved3,
ePlatformWin32,
ePlatformUWP,
ePlatformBSD,
ePlatformAndroid,
ePlatformLinux,
ePlatformAppleMacOS,
ePlatformIos,
ePlatformRTOS,
ePlatformNX,
ePlatformPS4,
ePlatformPS5,
ePlatformPS6,
ePlatformPS7,
ePlatformXbone,
ePlatformXbone2020,
ePlatformXboneReserved,
ePlatformXboneReserved2,
ePlatformXboneReserved3,
ePlatformNxPlusOne,
ePlatformNxPlusTwo,
ePlatformNxPlusThree
)
#if defined(AURORA_PLATFORM_KERNEL_LINUX)
static const EPlatform kCurrentPlatform = EPlatform::eKernelLinux;
#elif defined(AURORA_PLATFORM_NTOS)
static const EPlatform kCurrentPlatform = EPlatform::eKernelNtos;
#elif defined(AURORA_PLATFORM_KERNEL_FREEBSD) || defined(AURORA_PLATFORM_KERNEL_LAIN)
static const EPlatform kCurrentPlatform = EPlatform::eKernelBsd;
#elif defined(AURORA_PLATFORM_BSD)
static const EPlatform kCurrentPlatform = EPlatform::ePlatformBSD;
#elif defined(AURORA_PLATFORM_WIN32)
static const EPlatform kCurrentPlatform = EPlatform::ePlatformWin32;
#elif defined(AURORA_PLATFORM_ANDROID)
@ -65,7 +143,7 @@ namespace Aurora::Build
#elif defined(AURORA_PLATFORM_LINUX)
static const EPlatform kCurrentPlatform = EPlatform::ePlatformLinux;
#elif defined(AURORA_PLATFORM_APPLE)
static const EPlatform kCurrentPlatform = EPlatform::ePlatformApple;
static const EPlatform kCurrentPlatform = EPlatform::ePlatformAppleMacOS;
#elif defined(AURORA_PLATFORM_IOS)
static const EPlatform kCurrentPlatform = EPlatform::ePlatformIos;
#elif defined(AURORA_PLATFORM_SWITCH)
@ -81,21 +159,16 @@ namespace Aurora::Build
#elif defined(AURORA_PLATFORM_WII_U)
static const EPlatform kCurrentPlatform = EPlatform::ePlatformWiiU;
#else
static const EPlatform kCurrentPlatform = EPlatform::eInvalid;
static const EPlatform kCurrentPlatform = EPlatform::eEnumInvalid;
#endif
enum class EVendor
{
eInvalid = -1,
eUnknown = 0,
AUENVHPP_START_ENUM(EVendor,
eConsoleMicrosft,
eConsoleSony,
eConsoleNintendo,
eGenericApple,
eGenericMicrosoft,
};
eGenericMicrosoft
)
#if defined(VENDOR_CONSOLE_MICROSOFT)
static const EVendor kCurrentVendor = EVendor::eConsoleMicrosft;
@ -110,16 +183,14 @@ namespace Aurora::Build
#elif defined(VENDOR_UNKNOWN)
static const EVendor kCurrentVendor = EVendor::eUnknown;
#else
static const EVendor kCurrentVendor = EVendor::eInvalid;
static const EVendor kCurrentVendor = EVendor::eEnumInvalid;
#endif
enum class EArchitecture
{
eInvalid = -1,
AUENVHPP_START_ENUM(EArchitecture,
eX86_32,
eX86_64,
eAArch64
};
)
#if defined(AURORA_ARCH_X86)
static const EArchitecture kCurrentArchitecture = EArchitecture::eX86_32;
@ -128,7 +199,7 @@ namespace Aurora::Build
#elif defined(AURORA_ARCH_ARM)
static const EArchitecture kCurrentArchitecture = EArchitecture::eAArch64;
#else
static const EArchitecture kCurrentArchitecture = EArchitecture::eInvalid;
static const EArchitecture kCurrentArchitecture = EArchitecture::eEnumInvalid;
#endif
@ -137,9 +208,7 @@ namespace Aurora::Build
return kCurrentArchitecture == EArchitecture::eX86_32;
}
enum class EABI
{
eInvalid = -1,
AUENVHPP_START_ENUM(EABI,
// MSFTs in house amd64 abi
eMSFT64,
// MSFTs in house aarch64 abi
@ -154,7 +223,7 @@ namespace Aurora::Build
eMSFTAArchIntelBridge,
// other arm EPlatforms...
eLLVMArm
};
);
#if defined(AURORA_ABI_MSFT_64)
static const EABI kCurrentABI = EABI::eMSFT64;
@ -169,14 +238,13 @@ namespace Aurora::Build
#elif defined(AURORA_ABI_APPLE)
static const EABI kCurrentABI = EABI::eAppleArm;
#else
static const EABI kCurrentABI = EABI::eInvalid;
static const EABI kCurrentABI = EABI::eEnumInvalid;
#endif
enum class ECPUEndian
{
AUENVHPP_START_ENUM(ECPUEndian,
eCPUBig,
eCPULittle
};
);
#if defined (AU_CPU_ENDIAN_LITTLE)
static const ECPUEndian kCurrentEndian = ECPUEndian::eCPULittle;
@ -189,7 +257,16 @@ namespace Aurora::Build
eCpp20,
eCpp17,
eCpp14,
eC
eC,
eRust,
eGo,
eCs,
eJava,
eJavaScript,
eKotlin,
eHLSL,
gGLSL,
eCpp20Plus = 20
};
#if defined (AU_LANG_CPP_20)