Initial Commit
This commit is contained in:
parent
9d829baa25
commit
9614163a48
14
AuroraCommon.h
Normal file
14
AuroraCommon.h
Normal file
@ -0,0 +1,14 @@
|
||||
/***
|
||||
Copyright (©) 2020 Reece Wilson (a/k/a "Reece").
|
||||
All rights reserved.
|
||||
|
||||
File: AuroraCommon.h
|
||||
Date: 2020-:(
|
||||
Originator: Reece
|
||||
Purpose:
|
||||
***/
|
||||
#pragma once
|
||||
|
||||
#include "AuroraConfiguration.h"
|
||||
#include "AuroraEnvrionment.h"
|
||||
#include "AuroraTypes.h"
|
14
AuroraCommon.hpp
Normal file
14
AuroraCommon.hpp
Normal file
@ -0,0 +1,14 @@
|
||||
/***
|
||||
Copyright (©) 2020 Reece Wilson (a/k/a "Reece").
|
||||
All rights reserved.
|
||||
|
||||
File: AuroraCommon.hpp
|
||||
Date: 2020-6-10
|
||||
Originator: Reece
|
||||
Purpose:
|
||||
***/
|
||||
#pragma once
|
||||
|
||||
#include "AuroraConfiguration.hpp"
|
||||
#include "AuroraEnvrionment.hpp"
|
||||
#include "AuroraTypes.hpp"
|
10
AuroraConfiguration.h
Normal file
10
AuroraConfiguration.h
Normal file
@ -0,0 +1,10 @@
|
||||
/***
|
||||
Copyright (©) 2020 Reece Wilson (a/k/a "Reece").
|
||||
All rights reserved.
|
||||
|
||||
File: AuroraConfiguration.h
|
||||
Date: 2020-6-9
|
||||
Originator: Reece
|
||||
Purpose:
|
||||
***/
|
||||
#pragma once
|
15
AuroraConfiguration.hpp
Normal file
15
AuroraConfiguration.hpp
Normal file
@ -0,0 +1,15 @@
|
||||
/***
|
||||
Copyright (©) 2020 Reece Wilson (a/k/a "Reece").
|
||||
All rights reserved.
|
||||
|
||||
File: AuroraConfiguration.hpp
|
||||
Date: 2020-6-9
|
||||
Originator: Reece
|
||||
Purpose:
|
||||
***/
|
||||
#pragma once
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#include "AuroraConfiguration.h"
|
||||
}
|
106
AuroraEnvrionment.h
Normal file
106
AuroraEnvrionment.h
Normal file
@ -0,0 +1,106 @@
|
||||
/***
|
||||
Copyright (©) 2020 Reece Wilson (a/k/a "Reece").
|
||||
All rights reserved.
|
||||
|
||||
File: AuroraEnvrionment.h
|
||||
Date: 2020-6-9
|
||||
Originator: Reece
|
||||
Purpose:
|
||||
***/
|
||||
#pragma once
|
||||
|
||||
#if defined(__clang_major__)
|
||||
#define AURORA_COMPILER_CLANG
|
||||
#elif defined(_MSC_VER)
|
||||
#define AURORA_COMPILER_MSVC
|
||||
#elif __GNUC__ > 8 || __GNUC__ == 8
|
||||
#define AURORA_COMPILER_GCC
|
||||
#elif __GNUC__
|
||||
#error GCC outdated
|
||||
#else
|
||||
#error Illegal Compiler
|
||||
#endif
|
||||
|
||||
#if defined(_LINUX_KERNEL_AURORA_PREPROCESSOR)
|
||||
#define AURORA_PLATFORM_KERNEL_LINUX
|
||||
#elif defined(_NTOS_AURORA_PREPROCESSOR)
|
||||
#define AURORA_PLATFORM_NTOS
|
||||
#elif defined(_WINDOWS) || defined(_WIN32) || defined(_WIN64)
|
||||
#define AURORA_PLATFORM_WIN32
|
||||
#elif defined(__ANDROID__) || defined(_ANDROID_AURORA_PREPROCESSOR)
|
||||
#define AURORA_PLATFORM_ANDROID
|
||||
#elif defined(__linux__) || defined(_LINUX_AURORA_PREPROCESSOR)
|
||||
#define AURORA_PLATFORM_LINUX
|
||||
#elif (defined(__APPLE__) && defined(__MACH__)) || defined(_APPLE_AURORA_PREPROCESSOR)
|
||||
#define AURORA_PLATFORM_APPLE
|
||||
#elif (defined(__APPLE__) && defined(TARGET_OS_IPHONE)) || defined(_APPLE_MOBILE_AURORA_PREPROCESSOR)
|
||||
#define AURORA_PLATFORM_IOS
|
||||
#elif defined(_SWITCH_AURORA_PREPROCESSOR)
|
||||
#define AURORA_PLATFORM_SWITCH
|
||||
#elif defined(_PS4_AURORA_PREPROCESSOR) || defined(__ORBIS__)
|
||||
#define AURORA_PLATFORM_PS4
|
||||
#elif defined(_PS5_AURORA_PREPROCESSOR)
|
||||
#define AURORA_PLATFORM_PS5
|
||||
#elif defined(_XBONE_AURORA_PREPROCESSOR) || defined(_XBOX_ONE)
|
||||
#define AURORA_PLATFORM_XBONE
|
||||
#elif defined(_WII_AURORA_PREPROCESSOR)
|
||||
#define AURORA_PLATFORM_WII
|
||||
#elif defined(_WII_U_AURORA_PREPROCESSOR)
|
||||
#define AURORA_PLATFORM_WII_U
|
||||
#endif
|
||||
|
||||
#if defined(_GAMING_XBOX)
|
||||
#define VENDOR_CONSOLE_MICROSOFT
|
||||
#elif defined(__APPLE__)
|
||||
#define VENDOR_GENERIC_APPLE
|
||||
#elif defined(AURORA_PLATFORM_PS4) || defined(AURORA_PLATFORM_PS5)
|
||||
#define VENDOR_CONSOLE_SONY
|
||||
#elif defined(AURORA_PLATFORM_SWITCH) || defined(AURORA_PLATFORM_WII)|| defined(AURORA_PLATFORM_WII_U)
|
||||
#define VENDOR_CONSOLE_NINTENDO
|
||||
#elif defined(AURORA_PLATFORM_NTOS) || defined(AURORA_PLATFORM_WIN32)
|
||||
#define VENDOR_GENERIC_MICROSOFT
|
||||
#else
|
||||
#define VENDOR_UNKNOWN
|
||||
#endif
|
||||
|
||||
#if defined(AURORA_COMPILER_MSVC)
|
||||
|
||||
#if defined(_M_X64)
|
||||
#define AURORA_ABI_MSFT_64
|
||||
#define AURORA_ARCH_X64
|
||||
#elif defined(__aarch64__)
|
||||
#define AURORA_ARCH_ARM
|
||||
#define AURORA_ABI_MS_ARM
|
||||
#else
|
||||
#define AURORA_ARCH_X86
|
||||
#define AURORA_ABI_CDECL
|
||||
#endif
|
||||
|
||||
#define AURORA_SYMBOL_IMPORT __declspec(dllimport)
|
||||
#define AURORA_SYMBOL_EXPORT __declspec(dllexport)
|
||||
|
||||
#elif defined(AURORA_COMPILER_COMMUNISM) || defined(AURORA_COMPILER_CLANG)
|
||||
|
||||
#if defined(__x86_64__)
|
||||
#define AURORA_ARCH_X64
|
||||
#if defined(AURORA_PLATFORM_WIN32) || defined(AURORA_PLATFORM_NTOS)
|
||||
#define AURORA_ABI_MSFT_64
|
||||
#else
|
||||
#define AURORA_ABI_SYSV
|
||||
#endif
|
||||
#elif defined(__aarch64__)
|
||||
#define AURORA_ARCH_ARM
|
||||
#if defined(__APPLE__)
|
||||
#define AURORA_ABI_APPLE_ARM
|
||||
#else
|
||||
#define AURORA_ABI_LLVM_ARM
|
||||
#endif
|
||||
#else
|
||||
#define AURORA_ARCH_X86
|
||||
#define AURORA_ABI_CDECL
|
||||
#endif
|
||||
|
||||
#define AURORA_SYMBOL_IMPORT
|
||||
#define AURORA_SYMBOL_EXPORT __attribute__((visibility("default")))
|
||||
|
||||
#endif
|
166
AuroraEnvrionment.hpp
Normal file
166
AuroraEnvrionment.hpp
Normal file
@ -0,0 +1,166 @@
|
||||
/***
|
||||
Copyright (©) 2020 Reece Wilson (a/k/a "Reece").
|
||||
All rights reserved.
|
||||
|
||||
File: AuroraEnvrionment.h
|
||||
Date: 2020-6-9
|
||||
Originator: Reece
|
||||
Purpose:
|
||||
***/
|
||||
#pragma once
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#include "AuroraEnvrionment.h"
|
||||
}
|
||||
|
||||
namespace Aurora::Build
|
||||
{
|
||||
enum class ECompiler
|
||||
{
|
||||
kInvaild = -1,
|
||||
kMSVC,
|
||||
kClang,
|
||||
kGCC
|
||||
};
|
||||
|
||||
#if defined(AURORA_COMPILER_CLANG)
|
||||
static const ECompiler kCurrentECompiler = ECompiler::kClang;
|
||||
#elif defined(AURORA_COMPILER_MSVC)
|
||||
static const ECompiler kCurrentECompiler = ECompiler::kMSVC;
|
||||
#elif defined(AURORA_COMPILER_GCC)
|
||||
static const ECompiler kCurrentECompiler = ECompiler::kGCC;
|
||||
#else
|
||||
static const ECompiler kCurrentECompiler = ECompiler::kInvaild;
|
||||
#endif
|
||||
|
||||
enum class EPlatform
|
||||
{
|
||||
kInvalid = -1,
|
||||
|
||||
kKernelLinux,
|
||||
kKernelNtos,
|
||||
|
||||
kPlatformWin32,
|
||||
kPlatformAndroid,
|
||||
kPlatformLinux,
|
||||
kPlatformApple,
|
||||
kPlatformIos,
|
||||
kPlatformSwitch,
|
||||
kPlatformPS4,
|
||||
kPlatformPS5,
|
||||
kPlatformXbone,
|
||||
kPlatformWii,
|
||||
kPlatformWiiU
|
||||
};
|
||||
|
||||
#if defined(AURORA_PLATFORM_KERNEL_LINUX)
|
||||
static const EPlatform kCurrentPlatform = EPlatform::kKernelLinux;
|
||||
#elif defined(AURORA_PLATFORM_NTOS)
|
||||
static const EPlatform kCurrentPlatform = EPlatform::kKernelNtos;
|
||||
#elif defined(AURORA_PLATFORM_WIN32)
|
||||
static const EPlatform kCurrentPlatform = EPlatform::kPlatformWin32;
|
||||
#elif defined(AURORA_PLATFORM_ANDROID)
|
||||
static const EPlatform kCurrentPlatform = EPlatform::kPlatformAndroid;
|
||||
#elif defined(AURORA_PLATFORM_LINUX)
|
||||
static const EPlatform kCurrentPlatform = EPlatform::kPlatformLinux;
|
||||
#elif defined(AURORA_PLATFORM_APPLE)
|
||||
static const EPlatform kCurrentPlatform = EPlatform::kPlatformApple;
|
||||
#elif defined(AURORA_PLATFORM_IOS)
|
||||
static const EPlatform kCurrentPlatform = EPlatform::kPlatformIos;
|
||||
#elif defined(AURORA_PLATFORM_SWITCH)
|
||||
static const EPlatform kCurrentPlatform = EPlatform::kPlatformSwitch;
|
||||
#elif defined(AURORA_PLATFORM_PS4)
|
||||
static const EPlatform kCurrentPlatform = EPlatform::kPlatformPS4;
|
||||
#elif defined(AURORA_PLATFORM_PS5)
|
||||
static const EPlatform kCurrentPlatform = EPlatform::kPlatformPS5;
|
||||
#elif defined(AURORA_PLATFORM_XBONE)
|
||||
static const EPlatform kCurrentPlatform = EPlatform::kPlatformXbone;
|
||||
#elif defined(AURORA_PLATFORM_WII)
|
||||
static const EPlatform kCurrentPlatform = EPlatform::kPlatformWii;
|
||||
#elif defined(AURORA_PLATFORM_WII_U)
|
||||
static const EPlatform kCurrentPlatform = EPlatform::kPlatformWiiU;
|
||||
#else
|
||||
static const EPlatform kCurrentPlatform = EPlatform::kInvalid;
|
||||
#endif
|
||||
|
||||
enum class EVendor
|
||||
{
|
||||
kInvalid = -1,
|
||||
kUnknown = 0,
|
||||
|
||||
kConsoleMicrosft,
|
||||
kConsoleSony,
|
||||
kConsoleNintendo,
|
||||
|
||||
kGenericApple,
|
||||
kGenericMicrosoft,
|
||||
};
|
||||
|
||||
#if defined(VENDOR_CONSOLE_MICROSOFT)
|
||||
static const EVendor kCurrentVendor = EVendor::kConsoleMicrosft;
|
||||
#elif defined(VENDOR_GENERIC_APPLE)
|
||||
static const EVendor kCurrentVendor = EVendor::kGenericApple;
|
||||
#elif defined(VENDOR_CONSOLE_SONY)
|
||||
static const EVendor kCurrentVendor = EVendor::kConsoleSony;
|
||||
#elif defined(VENDOR_CONSOLE_NINTENDO)
|
||||
static const EVendor kCurrentVendor = EVendor::kConsoleNintendo;
|
||||
#elif defined(VENDOR_GENERIC_MICROSOFT)
|
||||
static const EVendor kCurrentVendor = EVendor::kGenericMicrosoft;
|
||||
#elif defined(VENDOR_UNKNOWN)
|
||||
static const EVendor kCurrentVendor = EVendor::kUnknown;
|
||||
#else
|
||||
static const EVendor kCurrentVendor = EVendor::kInvalid;
|
||||
#endif
|
||||
|
||||
enum class EArchitecture
|
||||
{
|
||||
kInvalid = -1,
|
||||
kX86_32,
|
||||
kX86_64,
|
||||
kAArch64
|
||||
};
|
||||
|
||||
#if defined(AURORA_ARCH_X86)
|
||||
static const EArchitecture kCurrentArchitecture = EArchitecture::kX86_32;
|
||||
#elif defined(AURORA_ARCH_X64)
|
||||
static const EArchitecture kCurrentArchitecture = EArchitecture::kX86_64;
|
||||
#elif defined(AURORA_ARCH_ARM)
|
||||
static const EArchitecture kCurrentArchitecture = EArchitecture::kAArch64;
|
||||
#else
|
||||
static const EArchitecture kCurrentArchitecture = EArchitecture::kInvalid;
|
||||
#endif
|
||||
|
||||
enum class EABI
|
||||
{
|
||||
kInvalid = -1,
|
||||
// MSFTs in house amd64 abi
|
||||
kMSFT64,
|
||||
// MSFTs in house aarch64 abi
|
||||
kMSFTArm,
|
||||
// x86 sysv and microsoft only deviate with fastcall and thiscall :(
|
||||
kCdeclIntel,
|
||||
// x86_64 others
|
||||
kSysV,
|
||||
// tim apple is special
|
||||
kAppleArm,
|
||||
// other arm EPlatforms...
|
||||
kLLVMArm
|
||||
};
|
||||
|
||||
#if defined(AURORA_ABI_MSFT_64)
|
||||
static const EABI kCurrentABI = EABI::kMSFT64;
|
||||
#elif defined(AURORA_ABI_MS_ARM)
|
||||
static const EABI kCurrentABI = EABI::kMSFTArm;
|
||||
#elif defined(AURORA_ABI_LLVM_ARM)
|
||||
static const EABI kCurrentABI = EABI::kLLVMArm;
|
||||
#elif defined(AURORA_ABI_CDECL)
|
||||
static const EABI kCurrentABI = EABI::kCdeclIntel;
|
||||
#elif defined(AURORA_ABI_SYSV)
|
||||
static const EABI kCurrentABI = EABI::kSysV;
|
||||
#elif defined(AURORA_ABI_APPLE)
|
||||
static const EABI kCurrentABI = EABI::kAppleArm;
|
||||
#else
|
||||
static const EABI kCurrentABI = EABI::kInvalid;
|
||||
#endif
|
||||
}
|
45
AuroraTypes.h
Normal file
45
AuroraTypes.h
Normal file
@ -0,0 +1,45 @@
|
||||
/***
|
||||
Copyright (©) 2020 Reece Wilson (a/k/a "Reece").
|
||||
All rights reserved.
|
||||
|
||||
File: AuroraTypes.h
|
||||
Date: 2020-6-12
|
||||
Originator: Reece
|
||||
Purpose:
|
||||
***/
|
||||
#pragma once
|
||||
|
||||
#if defined(AURORA_COMPILER_MSVC)
|
||||
typedef signed char int8_ct;
|
||||
typedef short int16_ct;
|
||||
typedef int int32_ct;
|
||||
typedef long long int64_ct;
|
||||
typedef unsigned char uint8_ct;
|
||||
typedef unsigned short uint16_ct;
|
||||
typedef unsigned int uint32_ct;
|
||||
typedef unsigned long long uint64_ct;
|
||||
#elif defined(AURORA_COMPILER_CLANG) || defined(AURORA_COMPILER_GCC)
|
||||
typedef __INT8_TYPE__ int8_ct;
|
||||
typedef __INT16_TYPE__ int16_ct;
|
||||
typedef __INT32_TYPE__ int32_ct;
|
||||
typedef __INT64_TYPE__ int64_ct;
|
||||
typedef __UINT8_TYPE__ uint8_ct;
|
||||
typedef __UINT16_TYPE__ uint16_ct;
|
||||
typedef __UINT32_TYPE__ uint32_ct;
|
||||
typedef __UINT64_TYPE__ uint64_ct;
|
||||
#endif
|
||||
|
||||
#if defined(AURORA_ARCH_X86)
|
||||
typedef uint32_ct size_ct;
|
||||
typedef int32_ct ssize_ct;
|
||||
#elif defined(AURORA_ARCH_X64)
|
||||
typedef uint64_ct size_ct;
|
||||
typedef int64_ct ssize_ct;
|
||||
#elif defined(AURORA_ARCH_ARM)
|
||||
typedef uint64_ct size_ct;
|
||||
typedef int64_ct ssize_ct;
|
||||
#else
|
||||
#error unsupported architecture. currently supports: aarch64 x86_64 x86_32
|
||||
#endif
|
||||
|
||||
typedef size_t Handle_ct;
|
48
AuroraTypes.hpp
Normal file
48
AuroraTypes.hpp
Normal file
@ -0,0 +1,48 @@
|
||||
/***
|
||||
Copyright (©) 2020 Reece Wilson (a/k/a "Reece").
|
||||
All rights reserved.
|
||||
|
||||
File: AuroraTypes.hpp
|
||||
Date: 2020-6-12
|
||||
Originator: Reece
|
||||
Purpose:
|
||||
***/
|
||||
#pragma once
|
||||
|
||||
namespace Aurora::Types
|
||||
{
|
||||
#if defined(AURORA_COMPILER_MSVC)
|
||||
using int8_t = signed char;
|
||||
using int16_t = short;
|
||||
using int32_t = int;
|
||||
using int64_t = long long;
|
||||
using uint8_t = unsigned char;
|
||||
using uint16_t = unsigned short;
|
||||
using uint32_t = unsigned int;
|
||||
using uint64_t = unsigned long long;
|
||||
#elif defined(AURORA_COMPILER_CLANG) || defined(AURORA_COMPILER_GCC)
|
||||
using int8_t = __INT8_TYPE__;
|
||||
using int16_t = __INT16_TYPE__;
|
||||
using int32_t = __INT32_TYPE__;
|
||||
using int64_t = __INT64_TYPE__;
|
||||
using uint8_t = __UINT8_TYPE__;
|
||||
using uint16_t = __UINT16_TYPE__;
|
||||
using uint32_t = __UINT32_TYPE__;
|
||||
using uint64_t = __UINT64_TYPE__;
|
||||
#endif
|
||||
|
||||
#if defined(AURORA_ARCH_X86)
|
||||
using size_t = uint32_t;
|
||||
using ssize_t = int32_t;
|
||||
#elif defined(AURORA_ARCH_X64)
|
||||
using size_t = uint64_t;
|
||||
using ssize_t = int64_t;
|
||||
#elif defined(AURORA_ARCH_ARM)
|
||||
using size_t = uint64_t;
|
||||
using ssize_t = int64_t;
|
||||
#else
|
||||
#error unsupported architecture. currently supports: aarch64, x86_64, x86_32
|
||||
#endif
|
||||
|
||||
using Handle = size_t;
|
||||
}
|
@ -1,3 +1,3 @@
|
||||
# Include
|
||||
# Common boilerplate
|
||||
|
||||
Common include headers for various software packages. Provides stdint alternative. Also provides macros for platform (+ fallback tied to /Build), compiler, platform, vendor, and partial ABI detection. Compiler/Runtime agnostic
|
||||
Provides platform macros and standard primitive datatypes to translation units without any other external includes (no stdlib/stl)
|
Loading…
Reference in New Issue
Block a user