MUDA
Loading...
Searching...
No Matches
platform.h
1#pragma once
2
3// Cross Platform Macros
4#if defined(WIN64) || defined(_WIN64) || defined(__WIN64__)
5#define MUDA_PLATFORM_WIN64
6#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
7#define MUDA_PLATFORM_WIN32
8#elif defined(__linux__)
9#define MUDA_PLATFORM_LINUX
10#elif defined(__APPLE__)
11#define MUDA_PLATFORM_APPLE
12#endif
13
14// Windows 64 or 32
15#if defined(MUDA_PLATFORM_WIN64) || defined(MUDA_PLATFORM_WIN32)
16#define MUDA_PLATFORM_WINDOWS
17#endif
18
19// Function Attributes
20#if defined(MUDA_PLATFORM_WINDOWS)
21#define MUDA_STDCALL __stdcall
22#define MUDA_CDECL __cdecl
23#define MUDA_FASTCALL __fastcall
24#define MUDA_FUNCTION_SIG __FUNCSIG__
25#elif defined(MUDA_PLATFORM_LINUX)
26#define MUDA_STDCALL __attribute__((__stdcall__))
27#define MUDA_CDECL __attribute__((__cdecl__))
28#define MUDA_FASTCALL __attribute__((__fastcall__))
29#define MUDA_FUNCTION_SIG __PRETTY_FUNCTION__
30#endif
31
32#if defined(_MSVC_LANG)
33#define MUDA_HAS_CXX20 _HAS_CXX20
34#else
35#define MUDA_HAS_CXX20 __cplusplus >= 202002L
36#endif