libopenmpt 0.5.0-pre.5+r11801 cross-platform C++ and C library to decode tracked music files

libopenmpt_config.h
Go to the documentation of this file.
1 /*
2 * libopenmpt_config.h
3 * -------------------
4 * Purpose: libopenmpt public interface configuration
5 * Notes : (currently none)
6 * Authors: OpenMPT Devs
7 * The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
8 */
9
10 #ifndef LIBOPENMPT_CONFIG_H
11 #define LIBOPENMPT_CONFIG_H
12
19 /* provoke warnings if already defined */
20 #define LIBOPENMPT_API
21 #undef LIBOPENMPT_API
22 #define LIBOPENMPT_CXX_API
23 #undef LIBOPENMPT_CXX_API
24
26 #define LIBOPENMPT_STREAM_CALLBACKS_BUFFER
27
39 #define LIBOPENMPT_STREAM_CALLBACKS_FD
40
52 #define LIBOPENMPT_STREAM_CALLBACKS_FILE
53
54 #if defined(__DOXYGEN__)
55
56 #define LIBOPENMPT_API_HELPER_EXPORT
57 #define LIBOPENMPT_API_HELPER_IMPORT
58 #define LIBOPENMPT_API_HELPER_PUBLIC
59 #define LIBOPENMPT_API_HELPER_LOCAL
60
61 #elif defined(_MSC_VER)
62
63 #define LIBOPENMPT_API_HELPER_EXPORT __declspec(dllexport)
64 #define LIBOPENMPT_API_HELPER_IMPORT __declspec(dllimport)
65 #define LIBOPENMPT_API_HELPER_PUBLIC
66 #define LIBOPENMPT_API_HELPER_LOCAL
67
68 #elif defined(__EMSCRIPTEN__)
69
70 #define LIBOPENMPT_API_HELPER_EXPORT __attribute__((visibility("default"))) __attribute__((used))
71 #define LIBOPENMPT_API_HELPER_IMPORT __attribute__((visibility("default"))) __attribute__((used))
72 #define LIBOPENMPT_API_HELPER_PUBLIC __attribute__((visibility("default"))) __attribute__((used))
73 #define LIBOPENMPT_API_HELPER_LOCAL __attribute__((visibility("hidden")))
74
75 #elif (defined(__GNUC__) || defined(__clang__)) && defined(_WIN32)
76
77 #define LIBOPENMPT_API_HELPER_EXPORT __declspec(dllexport)
78 #define LIBOPENMPT_API_HELPER_IMPORT __declspec(dllimport)
79 #define LIBOPENMPT_API_HELPER_PUBLIC __attribute__((visibility("default")))
80 #define LIBOPENMPT_API_HELPER_LOCAL __attribute__((visibility("hidden")))
81
82 #elif defined(__GNUC__) || defined(__clang__)
83
84 #define LIBOPENMPT_API_HELPER_EXPORT __attribute__((visibility("default")))
85 #define LIBOPENMPT_API_HELPER_IMPORT __attribute__((visibility("default")))
86 #define LIBOPENMPT_API_HELPER_PUBLIC __attribute__((visibility("default")))
87 #define LIBOPENMPT_API_HELPER_LOCAL __attribute__((visibility("hidden")))
88
89 #elif defined(_WIN32)
90
91 #define LIBOPENMPT_API_HELPER_EXPORT __declspec(dllexport)
92 #define LIBOPENMPT_API_HELPER_IMPORT __declspec(dllimport)
93 #define LIBOPENMPT_API_HELPER_PUBLIC
94 #define LIBOPENMPT_API_HELPER_LOCAL
95
96 #else
97
98 #define LIBOPENMPT_API_HELPER_EXPORT
99 #define LIBOPENMPT_API_HELPER_IMPORT
100 #define LIBOPENMPT_API_HELPER_PUBLIC
101 #define LIBOPENMPT_API_HELPER_LOCAL
102
103 #endif
104
105 #if defined(LIBOPENMPT_BUILD_DLL)
106 #define LIBOPENMPT_API LIBOPENMPT_API_HELPER_EXPORT
107 #elif defined(LIBOPENMPT_USE_DLL)
108 #define LIBOPENMPT_API LIBOPENMPT_API_HELPER_IMPORT
109 #else
110 #define LIBOPENMPT_API LIBOPENMPT_API_HELPER_PUBLIC
111 #endif
112
113 #ifdef __cplusplus
114
115 #define LIBOPENMPT_CXX_API LIBOPENMPT_API
116
117 #if defined(LIBOPENMPT_USE_DLL)
118 #if defined(_MSC_VER) && !defined(_DLL)
119 #error "C++ interface is disabled if libopenmpt is built as a DLL and the runtime is statically linked. This is not supported by microsoft and cannot possibly work. Ever."
120 #undef LIBOPENMPT_CXX_API
121 #define LIBOPENMPT_CXX_API LIBOPENMPT_API_HELPER_LOCAL
122 #endif
123 #endif
124
125 #if defined(__EMSCRIPTEN__)
126
127 /* Only the C API is supported for emscripten. Disable the C++ API. */
128 #undef LIBOPENMPT_CXX_API
129 #define LIBOPENMPT_CXX_API LIBOPENMPT_API_HELPER_LOCAL
130 #endif
131
132 #endif
133
139 /* C */
140
141 #if !defined(LIBOPENMPT_NO_DEPRECATE)
142 #if defined(__clang__)
143 #define LIBOPENMPT_DEPRECATED __attribute__((deprecated))
144 #elif defined(__GNUC__)
145 #define LIBOPENMPT_DEPRECATED __attribute__((deprecated))
146 #elif defined(_MSC_VER)
147 #define LIBOPENMPT_DEPRECATED __declspec(deprecated)
148 #else
149 #define LIBOPENMPT_DEPRECATED
150 #endif
151 #endif
152
153 #ifndef __cplusplus
154 #if !defined(LIBOPENMPT_NO_DEPRECATE)
155 LIBOPENMPT_DEPRECATED static const int LIBOPENMPT_DEPRECATED_STRING_CONSTANT = 0;
156 #define LIBOPENMPT_DEPRECATED_STRING( str ) ( LIBOPENMPT_DEPRECATED_STRING_CONSTANT ? ( str ) : ( str ) )
157 #else
158 #define LIBOPENMPT_DEPRECATED_STRING( str ) str
159 #endif
160 #endif
161
162
163 /* C++ */
164
165 #ifdef __cplusplus
166
167 #ifndef LIBOPENMPT_ASSUME_CPLUSPLUS_DEPRECATED
168 /* handle known broken compilers here by defining LIBOPENMPT_ASSUME_CPLUSPLUS_DEPRECATED appropriately */
169 #endif
170
171 #if defined(LIBOPENMPT_ASSUME_CPLUSPLUS)
172 #ifndef LIBOPENMPT_ASSUME_CPLUSPLUS_DEPRECATED
173 #define LIBOPENMPT_ASSUME_CPLUSPLUS_DEPRECATED LIBOPENMPT_ASSUME_CPLUSPLUS
174 #endif
175 #endif
176
177 #if !defined(LIBOPENMPT_NO_DEPRECATE)
178 #if defined(LIBOPENMPT_ASSUME_CPLUSPLUS_DEPRECATED)
179 #if (LIBOPENMPT_ASSUME_CPLUSPLUS_DEPRECATED >= 201402L)
180 #define LIBOPENMPT_ATTR_DEPRECATED [[deprecated]]
181 #undef LIBOPENMPT_DEPRECATED
182 #define LIBOPENMPT_DEPRECATED
183 #else
184 #define LIBOPENMPT_ATTR_DEPRECATED
185 #endif
186 #elif (__cplusplus >= 201402L)
187 #define LIBOPENMPT_ATTR_DEPRECATED [[deprecated]]
188 #undef LIBOPENMPT_DEPRECATED
189 #define LIBOPENMPT_DEPRECATED
190 #else
191 #define LIBOPENMPT_ATTR_DEPRECATED
192 #endif
193 #else
194 #undef LIBOPENMPT_DEPRECATED
195 #define LIBOPENMPT_DEPRECATED
196 #define LIBOPENMPT_ATTR_DEPRECATED
197 #endif
198
199 #endif
200
201
202 #include "libopenmpt_version.h"
203
204 #endif /* LIBOPENMPT_CONFIG_H */
LIBOPENMPT_DEPRECATED
#define LIBOPENMPT_DEPRECATED
Definition: libopenmpt_config.h:149
LIBOPENMPT_DEPRECATED_STRING_CONSTANT
static const int LIBOPENMPT_DEPRECATED_STRING_CONSTANT
Definition: libopenmpt_config.h:155
libopenmpt_version.h