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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
/* SPDX-License-Identifier: BSL-1.0 OR BSD-3-Clause */
#ifndef MPT_BASE_NAMESPACE_HPP
#define MPT_BASE_NAMESPACE_HPP
#include "mpt/base/detect.hpp"
#include "mpt/base/version.hpp"
#include "mpt/base/compiletime_warning.hpp"
#if !defined(MPT_INLINE_NS)
#define MPT_BUILD_VERSION_NAMESPACE_IMPL(a, b, c, d) v##a##_##b##_##c##_##d
#define MPT_BUILD_VERSION_NAMESPACE(a, b, c, d) MPT_BUILD_VERSION_NAMESPACE_IMPL(a, b, c, d)
#define MPT_VERSION_NAMESPACE MPT_BUILD_VERSION_NAMESPACE(MPT_VERSION_MAJOR, MPT_VERSION_MINOR, MPT_VERSION_PATCH, MPT_VERSION_BUILD)
#if MPT_OS_WINDOWS
#ifdef UNICODE
#define MPT_VERSION_ABI_OS u
#else
#define MPT_VERSION_ABI_OS 8
#endif
#else
#define MPT_VERSION_ABI_OS _
#endif
#if MPT_LIBC_GENERIC
#define MPT_VERSION_ABI_LIBC _
#elif MPT_LIBC_MS
#ifdef _DLL
#ifdef _DEBUG
#define MPT_VERSION_ABI_LIBC MDd
#else
#define MPT_VERSION_ABI_LIBC MDr
#endif
#else
#ifdef _DEBUG
#define MPT_VERSION_ABI_LIBC MTd
#else
#define MPT_VERSION_ABI_LIBC MTr
#endif
#endif
#elif MPT_LIBC_GLIBC
#define MPT_VERSION_ABI_LIBC G
#else
#define MPT_VERSION_ABI_LIBC _
#endif
#define MPT_BUILD_ABI_NAMESPACE_IMPL(a, b) ABI_##a##_##b
#define MPT_BUILD_ABI_NAMESPACE(a, b) MPT_BUILD_ABI_NAMESPACE_IMPL(a, b)
#define MPT_ABI_NAMESPACE MPT_BUILD_ABI_NAMESPACE(MPT_VERSION_ABI_OS, MPT_VERSION_ABI_LIBC)
#if !defined(MPT_PROJECT_NAMESPACE)
MPT_WARNING("Please #define MPT_PROJECT_NAMESPACE or #define MPT_INLINE_NS in build configuration.")
#define MPT_PROJECT_NAMESPACE x
#endif // !MPT_PROJECT_NAMESPACE
#define MPT_BUILD_INLINE_NS_IMPL(a, b, c) a##_##b##_##c
#define MPT_BUILD_INLINE_NS(a, b, c) MPT_BUILD_INLINE_NS_IMPL(a, b, c)
#define MPT_INLINE_NS MPT_BUILD_INLINE_NS(MPT_VERSION_NAMESPACE, MPT_ABI_NAMESPACE, MPT_PROJECT_NAMESPACE)
#endif // !MPT_INLINE_NS
namespace mpt {
inline namespace MPT_INLINE_NS {
} // namespace MPT_INLINE_NS
} // namespace mpt
#endif // MPT_BASE_NAMESPACE_HPP
|