MCRO
C++23 utilities for Unreal Engine.
Loading...
Searching...
No Matches
Platform.h
Go to the documentation of this file.
1/** @noop License Comment
2 * @file
3 * @copyright
4 * This Source Code is subject to the terms of the Mozilla Public License, v2.0.
5 * If a copy of the MPL was not distributed with this file You can obtain one at
6 * https://mozilla.org/MPL/2.0/
7 *
8 * @author David Mórász
9 * @date 2025
10 */
11
12#pragma once
13
14#include "CoreMinimal.h"
15#include "Mcro/Macros.h"
16
17#if PLATFORM_WINDOWS
18#define MCRO_CURRENT_PLATFORM Win64
19
20#elif PLATFORM_LINUXARM64
21#define MCRO_CURRENT_PLATFORM LinuxArm64
22
23#elif PLATFORM_LINUX
24#define MCRO_CURRENT_PLATFORM Linux
25
26#elif PLATFORM_MAC
27#define MCRO_CURRENT_PLATFORM Mac
28
29#elif PLATFORM_ANDROID
30#define MCRO_CURRENT_PLATFORM Android
31
32#elif PLATFORM_IOS
33#define MCRO_CURRENT_PLATFORM IOS
34
35#endif
36
37#define MCRO_CURRENT_PLATFORM_STRING PREPROCESSOR_TO_STRING(MCRO_CURRENT_PLATFORM)
38#define MCRO_CURRENT_PLATFORM_TEXT PREPROCESSOR_TO_TEXT(MCRO_CURRENT_PLATFORM)
39
40#if defined(_MSC_VER)
41#define MCRO_COMPILER_MSVC 1
42#define MCRO_COMPILER_GCC 0
43#define MCRO_COMPILER_CLANG 0
44#define MCRO_COMPILER MSVC
45#elif defined(__GNUC__)
46#define MCRO_COMPILER_MSVC 0
47#define MCRO_COMPILER_GCC 1
48#define MCRO_COMPILER_CLANG 0
49#define MCRO_COMPILER GCC
50#elif defined(__clang__)
51#define MCRO_COMPILER_MSVC 0
52#define MCRO_COMPILER_GCC 0
53#define MCRO_COMPILER_CLANG 1
54#define MCRO_COMPILER CLang
55#else
56#define MCRO_COMPILER_MSVC 0
57#define MCRO_COMPILER_GCC 0
58#define MCRO_COMPILER_CLANG 0
59#define MCRO_COMPILER Unknown
60#endif