Files
ld58/code/core/platform.h
James Bulman 655964852c Red screen?
Initalised vulkan for rendering bar some validation errors
Added core types, platform detection and util macros
2025-10-03 20:04:40 +01:00

74 lines
1.2 KiB
C

#if !defined(LD_CORE_PLATFORM_H_)
#define LD_CORE_PLATFORM_H_
#if !defined(LD_RELEASE)
#define LD_RELEASE 0
#endif
// -- Operating system
#define OS_WINDOWS 0
#define OS_LINUX 0
#if defined(_WIN32)
#undef OS_WINDOWS
#define OS_WINDOWS 1
#elif defined(__linux__)
#undef OS_LINUX
#define OS_LINUX 1
#else
#error "unsupported operating system"
#endif
// -- Architecture
#define ARCH_AMD64 0
#if defined(__amd64__) || defined(_M_AMD64)
#undef ARCH_AMD64
#define ARCH_AMD64 1
#else
#error "unsupported architecture"
#endif
// -- Compiler
#define COMPILER_CLANG 0
#define COMPILER_CL 0
#define COMPILER_GCC 0
#if defined(__clang__)
#undef COMPILER_CLANG
#define COMPILER_CLANG 1
#elif defined(_MSC_VER)
#undef COMPILER_CL
#define COMPILER_CL 1
#elif defined(__GNUC__)
#undef COMPILER_GCC
#define COMPILER_GCC 1
#else
#error "unsupported compiler"
#endif
// -- Language
#define LANG_C 0
#define LANG_CPP 0
#if defined(__OBJC__)
#error "unuspported language"
#elif defined(__cplusplus)
#undef LANG_CPP
#define LANG_CPP 1
#else
#undef LANG_C
#define LANG_C 1
#endif
#if OS_WINDOWS
#define WIN32_LEAN_AND_MEAN 1
#include <windows.h>
#endif
#endif // LD_CORE_PLATFORM_H_