123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- /*
- * libopenmpt_config.h
- * -------------------
- * Purpose: libopenmpt public interface configuration
- * Notes : (currently none)
- * Authors: OpenMPT Devs
- * The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
- */
- #ifndef LIBOPENMPT_CONFIG_H
- #define LIBOPENMPT_CONFIG_H
- /* clang-format off */
- /*! \defgroup libopenmpt libopenmpt */
- /*! \addtogroup libopenmpt
- @{
- */
- /* provoke warnings if already defined */
- #define LIBOPENMPT_API
- #undef LIBOPENMPT_API
- #define LIBOPENMPT_CXX_API
- #undef LIBOPENMPT_CXX_API
- /*!
- @}
- */
- /*! \addtogroup libopenmpt_c
- @{
- */
- /*! \brief Defined if libopenmpt/libopenmpt_stream_callbacks_buffer.h exists. */
- #define LIBOPENMPT_STREAM_CALLBACKS_BUFFER
- /*! \brief Defined if libopenmpt/libopenmpt_stream_callbacks_fd.h exists.
- * \since 0.3
- * \remarks
- * Use the following to check for availability:
- * \code
- * #include <libopenmpt/libopenmpt.h>
- * #if defined(LIBOPENMPT_STREAM_CALLBACKS_FD) || ((OPENMPT_API_VERSION_MAJOR == 0) && ((OPENMPT_API_VERSION_MINOR == 2) || (OPENMPT_API_VERSION_MINOR == 1)))
- * #include <libopenmpt/libopenmpt_stream_callbacks_fd.h>
- * #endif
- * \endcode
- */
- #define LIBOPENMPT_STREAM_CALLBACKS_FD
- /*! \brief Defined if libopenmpt/libopenmpt_stream_callbacks_file.h exists.
- * \since 0.3
- * \remarks
- * Use the following to check for availability:
- * \code
- * #include <libopenmpt/libopenmpt.h>
- * #if defined(LIBOPENMPT_STREAM_CALLBACKS_FILE) || ((OPENMPT_API_VERSION_MAJOR == 0) && ((OPENMPT_API_VERSION_MINOR == 2) || (OPENMPT_API_VERSION_MINOR == 1)))
- * #include <libopenmpt/libopenmpt_stream_callbacks_file.h>
- * #endif
- * \endcode
- */
- #define LIBOPENMPT_STREAM_CALLBACKS_FILE
- /*!
- @}
- */
- /*! \addtogroup libopenmpt
- @{
- */
- #if defined(__DOXYGEN__)
- #define LIBOPENMPT_API_HELPER_EXPORT
- #define LIBOPENMPT_API_HELPER_IMPORT
- #define LIBOPENMPT_API_HELPER_PUBLIC
- #define LIBOPENMPT_API_HELPER_LOCAL
- #elif defined(_MSC_VER)
- #define LIBOPENMPT_API_HELPER_EXPORT __declspec(dllexport)
- #define LIBOPENMPT_API_HELPER_IMPORT __declspec(dllimport)
- #define LIBOPENMPT_API_HELPER_PUBLIC
- #define LIBOPENMPT_API_HELPER_LOCAL
- #elif defined(__EMSCRIPTEN__)
- #define LIBOPENMPT_API_HELPER_EXPORT __attribute__((visibility("default"))) __attribute__((used))
- #define LIBOPENMPT_API_HELPER_IMPORT __attribute__((visibility("default"))) __attribute__((used))
- #define LIBOPENMPT_API_HELPER_PUBLIC __attribute__((visibility("default"))) __attribute__((used))
- #define LIBOPENMPT_API_HELPER_LOCAL __attribute__((visibility("hidden")))
- #elif (defined(__GNUC__) || defined(__clang__)) && defined(_WIN32)
- #define LIBOPENMPT_API_HELPER_EXPORT __declspec(dllexport)
- #define LIBOPENMPT_API_HELPER_IMPORT __declspec(dllimport)
- #define LIBOPENMPT_API_HELPER_PUBLIC __attribute__((visibility("default")))
- #define LIBOPENMPT_API_HELPER_LOCAL __attribute__((visibility("hidden")))
- #elif defined(__GNUC__) || defined(__clang__)
- #define LIBOPENMPT_API_HELPER_EXPORT __attribute__((visibility("default")))
- #define LIBOPENMPT_API_HELPER_IMPORT __attribute__((visibility("default")))
- #define LIBOPENMPT_API_HELPER_PUBLIC __attribute__((visibility("default")))
- #define LIBOPENMPT_API_HELPER_LOCAL __attribute__((visibility("hidden")))
- #elif defined(_WIN32)
- #define LIBOPENMPT_API_HELPER_EXPORT __declspec(dllexport)
- #define LIBOPENMPT_API_HELPER_IMPORT __declspec(dllimport)
- #define LIBOPENMPT_API_HELPER_PUBLIC
- #define LIBOPENMPT_API_HELPER_LOCAL
- #else
- #define LIBOPENMPT_API_HELPER_EXPORT
- #define LIBOPENMPT_API_HELPER_IMPORT
- #define LIBOPENMPT_API_HELPER_PUBLIC
- #define LIBOPENMPT_API_HELPER_LOCAL
- #endif
- #if defined(LIBOPENMPT_BUILD_DLL)
- #define LIBOPENMPT_API LIBOPENMPT_API_HELPER_EXPORT
- #elif defined(LIBOPENMPT_USE_DLL)
- #define LIBOPENMPT_API LIBOPENMPT_API_HELPER_IMPORT
- #else
- #define LIBOPENMPT_API LIBOPENMPT_API_HELPER_PUBLIC
- #endif
- #ifdef __cplusplus
- #define LIBOPENMPT_CXX_API LIBOPENMPT_API
- #if defined(LIBOPENMPT_USE_DLL)
- #if defined(_MSC_VER) && !defined(_DLL)
- #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."
- #undef LIBOPENMPT_CXX_API
- #define LIBOPENMPT_CXX_API LIBOPENMPT_API_HELPER_LOCAL
- #endif
- #endif
- #if defined(__EMSCRIPTEN__)
- /* Only the C API is supported for emscripten. Disable the C++ API. */
- #undef LIBOPENMPT_CXX_API
- #define LIBOPENMPT_CXX_API LIBOPENMPT_API_HELPER_LOCAL
- #endif
- #endif
- /*!
- @}
- */
- /* C */
- #if !defined(LIBOPENMPT_NO_DEPRECATE)
- #if defined(__clang__)
- #define LIBOPENMPT_DEPRECATED __attribute__((deprecated))
- #elif defined(__GNUC__)
- #define LIBOPENMPT_DEPRECATED __attribute__((deprecated))
- #elif defined(_MSC_VER)
- #define LIBOPENMPT_DEPRECATED __declspec(deprecated)
- #else
- #define LIBOPENMPT_DEPRECATED
- #endif
- #else
- #define LIBOPENMPT_DEPRECATED
- #endif
- #ifndef __cplusplus
- #if !defined(LIBOPENMPT_NO_DEPRECATE)
- LIBOPENMPT_DEPRECATED static const int LIBOPENMPT_DEPRECATED_STRING_CONSTANT = 0;
- #define LIBOPENMPT_DEPRECATED_STRING( str ) ( LIBOPENMPT_DEPRECATED_STRING_CONSTANT ? ( str ) : ( str ) )
- #else
- #define LIBOPENMPT_DEPRECATED_STRING( str ) str
- #endif
- #else
- #define LIBOPENMPT_DEPRECATED_STRING( str ) str
- #endif
- /* C++ */
- #ifdef __cplusplus
- #if defined(LIBOPENMPT_ASSUME_CPLUSPLUS)
- #endif
- #if !defined(LIBOPENMPT_NO_DEPRECATE)
- #define LIBOPENMPT_ATTR_DEPRECATED [[deprecated]]
- #else
- #define LIBOPENMPT_ATTR_DEPRECATED
- #endif
- #endif
- /* clang-format on */
- #include "libopenmpt_version.h"
- #endif /* LIBOPENMPT_CONFIG_H */
|