compiler.h (1165B)
1 /* See LICENSE for license details. */ 2 #ifndef COMPILER_H 3 #define COMPILER_H 4 5 #if defined(__linux__) 6 #define OS_LINUX 1 7 #elif defined(_WIN32) 8 #define OS_WINDOWS 1 9 #else 10 #error Unsupported Operating System 11 #endif 12 13 #ifdef __clang__ 14 #define COMPILER_CLANG 1 15 #elif _MSC_VER 16 #define COMPILER_MSVC 1 17 #elif __GNUC__ 18 #define COMPILER_GCC 1 19 #else 20 #error Unsupported Compiler 21 #endif 22 23 #if COMPILER_MSVC 24 #if defined(_M_AMD64) 25 #define ARCH_X64 1 26 #elif defined(_M_ARM64) 27 #define ARCH_ARM64 1 28 #else 29 #error Unsupported Architecture 30 #endif 31 #else 32 #if defined(__x86_64__) 33 #define ARCH_X64 1 34 #elif defined(__aarch64__) 35 #define ARCH_ARM64 1 36 #else 37 #error Unsupported Architecture 38 #endif 39 #endif 40 41 #if !defined(OS_WINDOWS) 42 #define OS_WINDOWS 0 43 #endif 44 #if !defined(OS_LINUX) 45 #define OS_LINUX 0 46 #endif 47 #if !defined(COMPILER_CLANG) 48 #define COMPILER_CLANG 0 49 #endif 50 #if !defined(COMPILER_MSVC) 51 #define COMPILER_MSVC 0 52 #endif 53 #if !defined(COMPILER_GCC) 54 #define COMPILER_GCC 0 55 #endif 56 #if !defined(ARCH_X64) 57 #define ARCH_X64 0 58 #endif 59 #if !defined(ARCH_ARM64) 60 #define ARCH_ARM64 0 61 #endif 62 63 #endif /* COMPILER_H */