acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
_tags.h
1// Created by camilo on 2023-06-14 13:24 <3ThomasBorregaardSorensen!!
2#pragma once
3
4
6
7
8
9
10#ifdef _WIN32
11_STUD_API bool __is_windows = true;
12#else
13_STUD_API bool __is_windows = false;
14#endif
15
16#define FOR_WINDOWS if constexpr(__is_windows)
17
18#if defined(__linux__)
19_STUD_API bool __is_linux = true;
20#else
21_STUD_API bool __is_linux = false;
22#endif
23
24#define FOR_LINUX if constexpr (__is_linux)
25
26#if defined (__linux__) || defined (__unix__)
27_STUD_API bool __is_unix = true;
28#else
29_STUD_API bool __is_unix = false;
30#endif
31
32#define FOR_UNIX if constexpr (__is_unix)
33
34#if defined (__APPLE__) || defined(__MACH__)
35_STUD_API bool __is_macos = true;
36#else
37_STUD_API bool __is_macos = false;
38#endif
39
40#define FOR_MACOS if constexpr (__is_macos)
41
42#if defined (__FreeBSD__)
43_STUD_API bool __is_freebsd = true;
44#else
45_STUD_API bool __is_freebsd = false;
46#endif
47
48
49#define FOR_FREEBSD if constexpr (__is_freebsd)
50
51#if defined (__ANDROID__)
52_STUD_API bool __is_android = true;
53#else
54_STUD_API bool __is_android = false;
55#endif
56
57
58#define FOR_ANDROID if constexpr (__is_android)
59
60
61#define SYSTEM_DISCOVERY_FUNCTION(name, builtin) \
62_STUD_API bool name() noexcept { \
63 return builtin; \
64}
65
66SYSTEM_DISCOVERY_FUNCTION(is_windows, __is_windows);
67SYSTEM_DISCOVERY_FUNCTION(is_linux, __is_linux);
68SYSTEM_DISCOVERY_FUNCTION(is_unix, __is_unix);
69SYSTEM_DISCOVERY_FUNCTION(is_macos, __is_macos);
70SYSTEM_DISCOVERY_FUNCTION(is_freebsd, __is_freebsd);
71SYSTEM_DISCOVERY_FUNCTION(is_android, __is_android);
72
73
Definition _tags.h:5