Enigma  3.2.0
A Simple, Reliable and Efficient Encryption Tool
Platform.hpp
Go to the documentation of this file.
1 #pragma once
6 #ifdef _WIN32
7 /* Windows x64/x86 */
8 #ifdef _WIN64
9 /* Windows x64 */
10 #define ENIGMA_PLATFORM_WINDOWS
11 #else
12 /* Windows x86 */
13 #error "x86 Builds are not supported!"
14 #endif
15 #elif defined(__APPLE__) || defined(__MACH__)
16 #include <TargetConditionals.h>
17 /* TARGET_OS_MAC exists on all the platforms
18  * so we must check all of them (in this order)
19  * to ensure that we're running on MAC
20  * and not some other Apple platform */
21 #if TARGET_IPHONE_SIMULATOR == 1
22 #error "IOS simulator is not supported!"
23 #elif TARGET_OS_IPHONE == 1
24 #define ENIGMA_PLATFORM_IOS
25 #error "IOS is not supported!"
26 #elif TARGET_OS_MAC == 1
27 #define ENIGMA_PLATFORM_MACOS
28 #error "MacOS is not supported!"
29 #else
30 #error "Unknown Apple platform!"
31 #endif
32 /* We also have to check __ANDROID__ before __linux__
33  * since android is based on the linux kernel
34  * it has __linux__ defined */
35 #elif defined(__ANDROID__)
36 #define ENIGMA_PLATFORM_ANDROID
37 #error "Android is not supported!"
38 #elif defined(__linux__)
39 #define ENIGMA_PLATFORM_LINUX
40 #else
41 /* Unknown compiler/platform */
42 #error "Unknown platform!"
43 #endif