From 2e348c8925ecbd627404a387100b9ad300041ad5 Mon Sep 17 00:00:00 2001 From: Fabrice Date: Thu, 16 Apr 2026 09:39:32 +0200 Subject: init --- omni/platform.h | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 omni/platform.h (limited to 'omni/platform.h') diff --git a/omni/platform.h b/omni/platform.h new file mode 100644 index 0000000..593b79c --- /dev/null +++ b/omni/platform.h @@ -0,0 +1,96 @@ +#ifndef OMNI_PLATFORM_H +#define OMNI_PLATFORM_H + +/* + * + * COMPILER INFORMATION + * + */ + +#undef OMNI_CC_MSVC +#undef OMNI_CC_GNU + +#if defined(_MSC_VER) +#define OMNI_CC_MSVC +#endif + +#if defined(__GNUC__) || defined(__clang__) +#define OMNI_CC_GNU +#endif + + +#if !defined(OMNI_CC_GNU) && !defined(OMNI_CC_MSVC) +#error "compiler not supported" +#endif + +/* + * + * TARGET ARCHITECTURE INFORMATION + * + */ + +#undef OMNI_ARCH_X86 +#undef OMNI_ARCH_ARM +#undef OMNI_ARCH_64BIT +#undef OMNI_ARCH_32BIT + +#if defined(__i386__) || defined(_M_IX86) +#define OMNI_ARCH_X86 +#define OMNI_ARCH_32BIT +#endif + +#if defined(__x86_64__) || defined(_M_X64) +#define OMNI_ARCH_X86 +#define OMNI_ARCH_64BIT +#endif + +#if defined(__arm__) || defined(_M_ARM) +#define OMNI_ARCH_ARM +#define OMNI_ARCH_32BIT +#endif + +#if defined(__aarch64__) || defined(_M_ARM64) || defined(__arm64__) +#define OMNI_ARCH_ARM +#define OMNI_ARCH_64BIT +#endif + +#if !defined(OMNI_ARCH_X86) && !defined(OMNI_ARCH_ARM) +#error "target architecture is not supported" +#endif + +/* + * + * TARGET OS INFORMATION + * + */ + +#undef OMNI_OS_WIN +#undef OMNI_OS_LINUX +#undef OMNI_OS_FREEBSD +#undef OMNI_OS_OSX + +#if defined(_WIN32) || defined(_WIN64) +#define OMNI_OS_WIN +#endif + +#if defined(__linux__) +#define OMNI_OS_LINUX +#define OMNI_OS_UNIX +#endif + +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +#define OMNI_OS_FREEBSD +#define OMNI_OS_UNIX +#endif + +#if defined(__APPLE__) && defined(__MACH__) +#define OMNI_OS_OSX +#define OMNI_OS_UNIX +#endif + +#if !defined(OMNI_OS_UNIX) && !defined(OMNI_OS_WIN) +#error "target os not supported" +#endif + +#endif + -- cgit v1.2.3