Enigma 3.2.2
A Simple, Reliable and Efficient Encryption Tool
Loading...
Searching...
No Matches
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