blob: 26e1289f1d04c7947e458e9900ee7e1b7e75b5dc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#pragma once
#include "std/cstdint.hpp"
#if defined(DEBUG) || defined(_DEBUG) || defined(NRELEASE) || defined(QT_DEBUG)
#define MY_DEBUG_DEFINED 1
#else
#define MY_DEBUG_DEFINED 0
#endif
#if defined(RELEASE) || defined(_RELEASE) || defined(NDEBUG) || defined(_NDEBUG) || \
defined(QT_NO_DEBUG)
#define MY_RELEASE_DEFINED 1
#else
#define MY_RELEASE_DEFINED 0
#endif
static_assert(MY_DEBUG_DEFINED ^ MY_RELEASE_DEFINED, "Either Debug or Release should be defined, but not both.");
// #define DEBUG macro, which should be used with #ifdef.
#if !MY_RELEASE_DEFINED
#ifndef DEBUG
#define DEBUG 1
#endif
#endif
#ifdef DEBUG
// #include "internal/debug_new.hpp"
// TODO: STL debug mode.
#define IF_DEBUG_ELSE(a, b) (a)
#else
#define IF_DEBUG_ELSE(a, b) (b)
#endif
// platform macroses
#include "std/target_os.hpp"
|