Enigma  3.2.0
A Simple, Reliable and Efficient Encryption Tool
Core.hpp
Go to the documentation of this file.
1 #pragma once
2 #ifndef ENIGMA_CORE_H
3 #define ENIGMA_CORE_H
4 
5 #include "Concepts.hpp"
6 #include "Constants.hpp"
7 #include "Macros.hpp"
8 #include "Platform.hpp"
9 #include "Types.hpp"
10 #include "Version.hpp"
11 
13 #define ENIGMA_TESTING false
15 
17 #define ENIGMA_PROFILE false
19 
20 
22 #define ENIGMA_GL_VERSION_MAJOR 3
23 #define ENIGMA_GL_VERSION_MINOR 3
25 
26 
28 #ifdef ENIGMA_DEBUG
29 //Break debug
30 #if defined(ENIGMA_PLATFORM_WINDOWS)
31 #define ENIGMA_DEBUG_BREAK() ::__debugbreak()
32 #elif defined(ENIGMA_PLATFORM_LINUX)
33 #include <csignal>
34 #define ENIGMA_DEBUG_BREAK() std::raise(SIGTRAP)
35 #else
36 #define ENIGMA_DEBUG_BREAK() std::abort()
37 #endif
38 #else
39 #define ENIGMA_DEBUG_BREAK()
40 #endif
42 
43 
44 //Windows
45 #if defined(_MSC_VER)
46 //Disable warning 4251 in MSC Microsoft Visual C++
47 //Warning C4251 needs to have dll - interface to be used by clients of class
48 #ifdef ENIGMA_DYNAMIC_LINK
49 #pragma warning(disable : 4251)
50 #endif
52 #ifndef _CRT_SECURE_NO_WARNINGS
53 #define _CRT_SECURE_NO_WARNINGS
54 #endif
55 #ifndef NOMINMAX
56 // On Windows, a header file defines two macros min and max which may result in
57 // conflicts with their counterparts in the standard library and therefore in errors during compilation.
58 #define NOMINMAX
59 #endif
60 #ifndef WIN32_LEAN_AND_MEAN
61 #define WIN32_LEAN_AND_MEAN
62 #endif
63 #endif
65 
66 
67 #endif // !ENIGMA_CORE_H