libopenmpt
0.2.4943
cross-platform C++ and C library to decode tracked music files
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
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
25
#if defined(__DOXYGEN__)
26
27
#define LIBOPENMPT_API_HELPER_EXPORT
28
#define LIBOPENMPT_API_HELPER_IMPORT
29
#define LIBOPENMPT_API_HELPER_PUBLIC
30
#define LIBOPENMPT_API_HELPER_LOCAL
31
32
#elif defined(_MSC_VER)
33
34
#define LIBOPENMPT_API_HELPER_EXPORT __declspec(dllexport)
35
#define LIBOPENMPT_API_HELPER_IMPORT __declspec(dllimport)
36
#define LIBOPENMPT_API_HELPER_PUBLIC
37
#define LIBOPENMPT_API_HELPER_LOCAL
38
39
#elif defined(__GNUC__) || defined(__clang__)
40
41
#if !defined(__EMSCRIPTEN__)
42
#if defined(_WIN32)
43
#define LIBOPENMPT_API_HELPER_EXPORT __declspec(dllexport)
44
#define LIBOPENMPT_API_HELPER_IMPORT __declspec(dllimport)
45
#else
46
#define LIBOPENMPT_API_HELPER_EXPORT __attribute__((visibility("default")))
47
#define LIBOPENMPT_API_HELPER_IMPORT __attribute__((visibility("default")))
48
#endif
49
#define LIBOPENMPT_API_HELPER_PUBLIC __attribute__((visibility("default")))
50
#define LIBOPENMPT_API_HELPER_LOCAL __attribute__((visibility("hidden")))
51
#else
52
#define LIBOPENMPT_API_HELPER_PUBLIC __attribute__((visibility("default"))) __attribute__((used))
53
#define LIBOPENMPT_API_HELPER_LOCAL __attribute__((visibility("hidden")))
54
#endif
55
56
#else
57
58
#define LIBOPENMPT_API_HELPER_EXPORT
59
#define LIBOPENMPT_API_HELPER_IMPORT
60
#define LIBOPENMPT_API_HELPER_PUBLIC
61
#define LIBOPENMPT_API_HELPER_LOCAL
62
63
#endif
64
65
#if defined(LIBOPENMPT_BUILD_DLL)
66
#define LIBOPENMPT_API LIBOPENMPT_API_HELPER_EXPORT
67
#elif defined(LIBOPENMPT_USE_DLL)
68
#define LIBOPENMPT_API LIBOPENMPT_API_HELPER_IMPORT
69
#else
70
#define LIBOPENMPT_API LIBOPENMPT_API_HELPER_PUBLIC
71
#endif
72
73
#ifdef __cplusplus
74
75
#define LIBOPENMPT_CXX_API LIBOPENMPT_API
76
77
#if defined(LIBOPENMPT_USE_DLL)
78
#if defined(_MSC_VER) && !defined(_DLL)
79
#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."
80
#undef LIBOPENMPT_CXX_API
81
#define LIBOPENMPT_CXX_API LIBOPENMPT_API_HELPER_LOCAL
82
#endif
83
#endif
84
85
#if defined(__EMSCRIPTEN__)
86
87
/* Only the C API is supported for emscripten. Disable the C++ API. */
88
#undef LIBOPENMPT_CXX_API
89
#define LIBOPENMPT_CXX_API LIBOPENMPT_API_HELPER_LOCAL
90
#endif
91
92
#endif
93
98
#if defined(_MSC_VER)
99
#if (_MSC_VER >= 1500) && (_MSC_VER < 1600)
100
#define LIBOPENMPT_ANCIENT_COMPILER
101
#define LIBOPENMPT_ANCIENT_COMPILER_SHARED_PTR
102
#define LIBOPENMPT_SHARED_PTR std::tr1::shared_ptr
103
#endif
104
#endif
105
106
#if defined(__GNUC__) && !defined(__clang__)
107
#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__*1 < 40300)
108
#define LIBOPENMPT_ANCIENT_COMPILER
109
#define LIBOPENMPT_ANCIENT_COMPILER_SHARED_PTR
110
#define LIBOPENMPT_SHARED_PTR std::tr1::shared_ptr
111
#elif (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__*1 < 40400)
112
#define LIBOPENMPT_ANCIENT_COMPILER_SHARED_PTR
113
#define LIBOPENMPT_SHARED_PTR std::shared_ptr
114
#endif
115
#endif
116
117
#ifdef __cplusplus
118
#ifdef LIBOPENMPT_ANCIENT_COMPILER
119
#include <stdint.h>
120
namespace
std {
121
typedef
int8_t int8_t;
122
typedef
int16_t int16_t;
123
typedef
int32_t int32_t;
124
typedef
int64_t int64_t;
125
typedef
uint8_t uint8_t;
126
typedef
uint16_t uint16_t;
127
typedef
uint32_t uint32_t;
128
typedef
uint64_t uint64_t;
129
}
130
#endif
131
#endif
132
133
#include "
libopenmpt_version.h
"
134
135
#endif
/* LIBOPENMPT_CONFIG_H */
libopenmpt
libopenmpt_config.h
Generated on Sat Apr 18 2015 18:18:44 for libopenmpt by
1.8.1.2