aboutsummaryrefslogtreecommitdiff
path: root/Src/external_dependencies/openmpt-trunk/common/BuildSettings.h
diff options
context:
space:
mode:
authorJean-Francois Mauguit <jfmauguit@mac.com>2024-09-24 09:03:25 -0400
committerGitHub <noreply@github.com>2024-09-24 09:03:25 -0400
commitbab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/external_dependencies/openmpt-trunk/common/BuildSettings.h
parent4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff)
parent20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff)
downloadwinamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz
Merge pull request #5 from WinampDesktop/community
Merge to main
Diffstat (limited to 'Src/external_dependencies/openmpt-trunk/common/BuildSettings.h')
-rw-r--r--Src/external_dependencies/openmpt-trunk/common/BuildSettings.h683
1 files changed, 683 insertions, 0 deletions
diff --git a/Src/external_dependencies/openmpt-trunk/common/BuildSettings.h b/Src/external_dependencies/openmpt-trunk/common/BuildSettings.h
new file mode 100644
index 00000000..f319b6e9
--- /dev/null
+++ b/Src/external_dependencies/openmpt-trunk/common/BuildSettings.h
@@ -0,0 +1,683 @@
+/*
+ * BuildSettings.h
+ * ---------------
+ * Purpose: Global, user settable compile time flags (and some global system header configuration)
+ * Notes : (currently none)
+ * Authors: OpenMPT Devs
+ * The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
+ */
+
+
+#pragma once
+
+
+
+#include "mpt/base/detect_compiler.hpp"
+#include "mpt/base/detect_os.hpp"
+#include "mpt/base/detect_quirks.hpp"
+
+
+
+// set windows version early so that we can deduce dependencies from SDK version
+
+#if MPT_OS_WINDOWS
+
+#if !defined(WINVER) && !defined(_WIN32_WINDOWS) && !defined(_WIN32_WINNT)
+#if MPT_COMPILER_CLANG
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wreserved-id-macro"
+#endif // MPT_COMPILER_CLANG
+#define _WIN32_WINNT 0x0601 // _WIN32_WINNT_WIN7
+#if MPT_COMPILER_CLANG
+#pragma clang diagnostic pop
+#endif // MPT_COMPILER_CLANG
+#endif
+
+#ifndef WINVER
+#if defined(_WIN32_WINNT)
+#define WINVER _WIN32_WINNT
+#elif defined(_WIN32_WINDOWS)
+#define WINVER _WIN32_WINDOWS
+#endif
+#endif
+
+#endif // MPT_OS_WINDOWS
+
+
+
+#if defined(MODPLUG_TRACKER) && defined(LIBOPENMPT_BUILD)
+#error "either MODPLUG_TRACKER or LIBOPENMPT_BUILD has to be defined"
+#elif defined(MODPLUG_TRACKER)
+// nothing
+#define MPT_INLINE_NS mptx
+#elif defined(LIBOPENMPT_BUILD)
+// nothing
+#define MPT_INLINE_NS mpt_libopenmpt
+#else
+#error "either MODPLUG_TRACKER or LIBOPENMPT_BUILD has to be defined"
+#endif // MODPLUG_TRACKER || LIBOPENMPT_BUILD
+
+
+
+#if defined(LIBOPENMPT_BUILD)
+
+// Fixup dependencies which are currently not used in libopenmpt itself,
+// however might be set by some build systems like autotools anyway for simplicity.
+#ifdef MPT_WITH_FLAC
+#undef MPT_WITH_FLAC
+#endif
+
+#endif // LIBOPENMPT_BUILD
+
+
+
+// Dependencies from the MSVC build system
+#if defined(MPT_BUILD_MSVC)
+
+// This section defines which dependencies are available when building with
+// MSVC. Other build systems provide MPT_WITH_* macros via command-line or other
+// means.
+// OpenMPT and libopenmpt should compile and run successfully (albeit with
+// reduced functionality) with any or all dependencies missing/disabled.
+// The defaults match the bundled third-party libraries with the addition of
+// ASIO and VST SDKs.
+
+#if defined(MODPLUG_TRACKER)
+
+#if MPT_OS_WINDOWS
+#if !defined(MPT_BUILD_WINESUPPORT) && !defined(MPT_BUILD_UPDATESIGNTOOL)
+#define MPT_WITH_MFC
+#endif // !MPT_BUILD_WINESUPPORT && !MPT_BUILD_UPDATESIGNTOOL
+#endif // MPT_OS_WINDOWS
+
+// OpenMPT-only dependencies
+#define MPT_WITH_ANCIENT
+#if !defined(MPT_BUILD_RETRO) && !MPT_COMPILER_CLANG && !MPT_MSVC_BEFORE(2019,0)
+// disabled for VS2017 because of multiple initialization of inline variables
+// https://developercommunity.visualstudio.com/t/static-inline-variable-gets-destroyed-multiple-tim/297876
+#define MPT_WITH_ASIO
+#endif
+#if defined(MPT_BUILD_RETRO)
+#define MPT_WITH_DIRECTSOUND
+#endif
+#define MPT_WITH_DMO
+#define MPT_WITH_LAME
+#define MPT_WITH_LHASA
+#define MPT_WITH_MINIZIP
+#define MPT_WITH_NLOHMANNJSON
+#define MPT_WITH_OPUS
+#define MPT_WITH_OPUSENC
+#define MPT_WITH_OPUSFILE
+#define MPT_WITH_PORTAUDIO
+//#define MPT_WITH_PULSEAUDIO
+//#define MPT_WITH_PULSEAUDIOSIMPLE
+#define MPT_WITH_RTAUDIO
+#define MPT_WITH_SMBPITCHSHIFT
+#define MPT_WITH_UNRAR
+#define MPT_WITH_VORBISENC
+#define MPT_WITH_VST
+
+// OpenMPT and libopenmpt dependencies (not for openmp123, player plugins or examples)
+//#define MPT_WITH_DL
+#define MPT_WITH_FLAC
+//#define MPT_WITH_LTDL
+#if MPT_OS_WINDOWS
+#if (_WIN32_WINNT >= 0x0601)
+#define MPT_WITH_MEDIAFOUNDATION
+#endif
+#endif
+//#define MPT_WITH_MINIMP3
+//#define MPT_WITH_MINIZ
+#define MPT_WITH_MPG123
+#define MPT_WITH_OGG
+//#define MPT_WITH_STBVORBIS
+#define MPT_WITH_VORBIS
+#define MPT_WITH_VORBISFILE
+#if MPT_OS_WINDOWS
+#if (_WIN32_WINNT >= 0x0A00)
+#define MPT_WITH_WINDOWS10
+#endif
+#endif
+#define MPT_WITH_ZLIB
+
+#endif // MODPLUG_TRACKER
+
+#if defined(LIBOPENMPT_BUILD)
+
+// OpenMPT and libopenmpt dependencies (not for openmp123, player plugins or examples)
+#if defined(LIBOPENMPT_BUILD_FULL) && defined(LIBOPENMPT_BUILD_SMALL)
+#error "only one of LIBOPENMPT_BUILD_FULL or LIBOPENMPT_BUILD_SMALL can be defined"
+#endif // LIBOPENMPT_BUILD_FULL && LIBOPENMPT_BUILD_SMALL
+
+#if defined(LIBOPENMPT_BUILD_SMALL)
+
+//#define MPT_WITH_DL
+//#define MPT_WITH_FLAC
+//#define MPT_WITH_LTDL
+//#define MPT_WITH_MEDIAFOUNDATION
+#define MPT_WITH_MINIMP3
+#define MPT_WITH_MINIZ
+//#define MPT_WITH_MPG123
+//#define MPT_WITH_OGG
+#define MPT_WITH_STBVORBIS
+//#define MPT_WITH_VORBIS
+//#define MPT_WITH_VORBISFILE
+//#define MPT_WITH_ZLIB
+
+#else // !LIBOPENMPT_BUILD_SMALL
+
+//#define MPT_WITH_DL
+//#define MPT_WITH_FLAC
+//#define MPT_WITH_LTDL
+//#define MPT_WITH_MEDIAFOUNDATION
+//#define MPT_WITH_MINIMP3
+//#define MPT_WITH_MINIZ
+#define MPT_WITH_MPG123
+#define MPT_WITH_OGG
+//#define MPT_WITH_STBVORBIS
+#define MPT_WITH_VORBIS
+#define MPT_WITH_VORBISFILE
+#define MPT_WITH_ZLIB
+
+#endif // LIBOPENMPT_BUILD_SMALL
+
+#endif // LIBOPENMPT_BUILD
+
+#endif // MPT_BUILD_MSVC
+
+
+#if defined(MPT_BUILD_XCODE)
+
+#if defined(MODPLUG_TRACKER)
+
+// n/a
+
+#endif // MODPLUG_TRACKER
+
+#if defined(LIBOPENMPT_BUILD)
+
+//#define MPT_WITH_DL
+//#define MPT_WITH_FLAC
+//#define MPT_WITH_LTDL
+//#define MPT_WITH_MEDIAFOUNDATION
+//#define MPT_WITH_MINIMP3
+//#define MPT_WITH_MINIZ
+#define MPT_WITH_MPG123
+#define MPT_WITH_OGG
+//#define MPT_WITH_STBVORBIS
+#define MPT_WITH_VORBIS
+#define MPT_WITH_VORBISFILE
+#define MPT_WITH_ZLIB
+
+#endif // LIBOPENMPT_BUILD
+
+#endif // MPT_BUILD_XCODE
+
+
+
+#if defined(MODPLUG_TRACKER)
+
+// Enable built-in test suite.
+#if defined(MPT_BUILD_DEBUG) || defined(MPT_BUILD_CHECKED)
+#define ENABLE_TESTS
+#endif
+
+// Disable any file saving functionality (not really useful except for the player library)
+//#define MODPLUG_NO_FILESAVE
+
+// Disable any debug logging
+#if !defined(MPT_BUILD_DEBUG) && !defined(MPT_BUILD_CHECKED) && !defined(MPT_BUILD_WINESUPPORT)
+#define MPT_LOG_GLOBAL_LEVEL_STATIC
+#define MPT_LOG_GLOBAL_LEVEL 0
+#endif
+
+// Enable all individual logging macros and MPT_LOG calls
+//#define MPT_ALL_LOGGING
+
+// Disable all runtime asserts
+#if !defined(MPT_BUILD_DEBUG) && !defined(MPT_BUILD_CHECKED) && !defined(MPT_BUILD_WINESUPPORT)
+#define NO_ASSERTS
+#endif
+
+// Enable global ComponentManager
+#define MPT_COMPONENT_MANAGER 1
+
+// Support for externally linked samples e.g. in MPTM files
+#define MPT_EXTERNAL_SAMPLES
+
+// Support mpt::ChartsetLocale
+#define MPT_ENABLE_CHARSET_LOCALE
+
+// Use architecture-specific intrinsics
+#define MPT_ENABLE_ARCH_INTRINSICS
+
+#if !defined(MPT_BUILD_RETRO)
+#define MPT_ENABLE_UPDATE
+#endif // !MPT_BUILD_RETRO
+
+// Disable unarchiving support
+//#define NO_ARCHIVE_SUPPORT
+
+// Disable the built-in reverb effect
+//#define NO_REVERB
+
+// Disable built-in miscellaneous DSP effects (surround, mega bass, noise reduction)
+//#define NO_DSP
+
+// Disable the built-in equalizer.
+//#define NO_EQ
+
+// Disable the built-in automatic gain control
+//#define NO_AGC
+
+// (HACK) Define to build without any plugin support
+//#define NO_PLUGINS
+
+#endif // MODPLUG_TRACKER
+
+
+
+#if defined(LIBOPENMPT_BUILD)
+
+#if (defined(_DEBUG) || defined(DEBUG)) && !defined(MPT_BUILD_DEBUG)
+#define MPT_BUILD_DEBUG
+#endif
+
+#if defined(LIBOPENMPT_BUILD_TEST)
+#define ENABLE_TESTS
+#else
+#define MODPLUG_NO_FILESAVE
+#endif
+#if defined(MPT_BUILD_ANALZYED) || defined(MPT_BUILD_DEBUG) || defined(MPT_BUILD_CHECKED) || defined(ENABLE_TESTS)
+// enable asserts
+#else
+#define NO_ASSERTS
+#endif
+//#define MPT_ALL_LOGGING
+#define MPT_COMPONENT_MANAGER 0
+//#define MPT_EXTERNAL_SAMPLES
+#if defined(ENABLE_TESTS) || defined(MPT_BUILD_HACK_ARCHIVE_SUPPORT)
+#define MPT_ENABLE_CHARSET_LOCALE
+#else
+//#define MPT_ENABLE_CHARSET_LOCALE
+#endif
+// Do not use architecture-specifid intrinsics in library builds. There is just about no codepath which would use it anyway.
+//#define MPT_ENABLE_ARCH_INTRINSICS
+#if defined(MPT_BUILD_HACK_ARCHIVE_SUPPORT)
+//#define NO_ARCHIVE_SUPPORT
+#else
+#define NO_ARCHIVE_SUPPORT
+#endif
+//#define NO_REVERB
+#define NO_DSP
+#define NO_EQ
+#define NO_AGC
+//#define NO_PLUGINS
+
+#endif // LIBOPENMPT_BUILD
+
+
+
+#if MPT_OS_WINDOWS
+
+ #ifndef MPT_ENABLE_CHARSET_LOCALE
+ #define MPT_ENABLE_CHARSET_LOCALE
+ #endif
+
+#elif MPT_OS_LINUX
+
+#elif MPT_OS_ANDROID
+
+#elif MPT_OS_EMSCRIPTEN
+
+#elif MPT_OS_MACOSX_OR_IOS
+
+#elif MPT_OS_DJGPP
+
+#endif
+
+
+
+#if (MPT_COMPILER_MSVC && !defined(MPT_USTRING_MODE_UTF8_FORCE)) || defined(MODPLUG_TRACKER)
+
+ // Use wide strings for MSVC because this is the native encoding on
+ // microsoft platforms.
+
+ // mpt::ToWString, mpt::wfmt, ConvertStrTo<std::wstring>
+ // Required by the tracker to ease interfacing with WinAPI.
+ // Required by MPT_USTRING_MODE_WIDE to ease type tunneling in mpt::format.
+ #define MPT_WSTRING_FORMAT 1
+
+#else
+
+ #define MPT_WSTRING_FORMAT 0
+
+#endif
+
+#if (MPT_COMPILER_MSVC && !defined(MPT_USTRING_MODE_UTF8_FORCE)) || MPT_OS_WINDOWS || MPT_WSTRING_FORMAT
+
+ // mpt::ToWide
+ // Required on Windows by mpt::PathString.
+ // Required by MPT_USTRING_MODE_WIDE as they share the conversion functions.
+ // Required by MPT_WSTRING_FORMAT because of std::string<->std::wstring conversion in mpt::ToAString and mpt::ToWString.
+ #define MPT_WSTRING_CONVERT 1
+
+#else
+
+ #define MPT_WSTRING_CONVERT 0
+
+#endif
+
+
+
+// fixing stuff up
+
+#if defined(MPT_BUILD_ANALYZED) || defined(MPT_BUILD_CHECKED)
+#ifdef NO_ASSERTS
+#undef NO_ASSERTS // static or dynamic analyzers want assertions on
+#endif
+#endif
+
+#if defined(MPT_BUILD_FUZZER)
+#ifndef MPT_FUZZ_TRACKER
+#define MPT_FUZZ_TRACKER
+#endif
+#endif
+
+#if defined(MPT_ENABLE_ARCH_INTRINSICS)
+#if MPT_COMPILER_MSVC && defined(_M_IX86)
+
+#define MPT_ENABLE_ARCH_X86
+
+#define MPT_ENABLE_ARCH_INTRINSICS_SSE
+#define MPT_ENABLE_ARCH_INTRINSICS_SSE2
+
+#elif MPT_COMPILER_MSVC && defined(_M_X64)
+
+#define MPT_ENABLE_ARCH_AMD64
+
+#define MPT_ENABLE_ARCH_INTRINSICS_SSE
+#define MPT_ENABLE_ARCH_INTRINSICS_SSE2
+
+#endif // arch
+#endif // MPT_ENABLE_ARCH_INTRINSICS
+
+#if defined(ENABLE_TESTS) && defined(MODPLUG_NO_FILESAVE)
+#undef MODPLUG_NO_FILESAVE // tests recommend file saving
+#endif
+
+#if defined(MPT_WITH_ZLIB) && defined(MPT_WITH_MINIZ)
+// Only one deflate implementation should be used. Prefer zlib.
+#undef MPT_WITH_MINIZ
+#endif
+
+#if !MPT_OS_WINDOWS && defined(MPT_WITH_MEDIAFOUNDATION)
+#undef MPT_WITH_MEDIAFOUNDATION // MediaFoundation requires Windows
+#endif
+
+#if !MPT_COMPILER_MSVC && !MPT_COMPILER_CLANG && defined(MPT_WITH_MEDIAFOUNDATION)
+#undef MPT_WITH_MEDIAFOUNDATION // MediaFoundation requires MSVC or Clang due to ATL (no MinGW support)
+#endif
+
+#if (defined(MPT_WITH_MPG123) || defined(MPT_WITH_MINIMP3)) && !defined(MPT_ENABLE_MP3_SAMPLES)
+#define MPT_ENABLE_MP3_SAMPLES
+#endif
+
+#if defined(ENABLE_TESTS)
+#define MPT_ENABLE_FILEIO // Test suite requires PathString for file loading.
+#endif
+
+#if defined(MODPLUG_TRACKER) && !defined(MPT_ENABLE_FILEIO)
+#define MPT_ENABLE_FILEIO // Tracker requires disk file io
+#endif
+
+#if defined(MPT_EXTERNAL_SAMPLES) && !defined(MPT_ENABLE_FILEIO)
+#define MPT_ENABLE_FILEIO // External samples require disk file io
+#endif
+
+#if defined(NO_PLUGINS)
+// Any plugin type requires NO_PLUGINS to not be defined.
+#if defined(MPT_WITH_VST)
+#undef MPT_WITH_VST
+#endif
+#endif
+
+
+
+#if defined(MODPLUG_TRACKER) && !defined(MPT_BUILD_WINESUPPORT) && !defined(MPT_BUILD_WINESUPPORT_WRAPPER)
+#ifndef MPT_NO_NAMESPACE
+#define MPT_NO_NAMESPACE
+#endif
+#endif
+
+#if defined(MPT_NO_NAMESPACE)
+
+#ifdef OPENMPT_NAMESPACE
+#undef OPENMPT_NAMESPACE
+#endif
+#define OPENMPT_NAMESPACE
+
+#ifdef OPENMPT_NAMESPACE_BEGIN
+#undef OPENMPT_NAMESPACE_BEGIN
+#endif
+#define OPENMPT_NAMESPACE_BEGIN
+
+#ifdef OPENMPT_NAMESPACE_END
+#undef OPENMPT_NAMESPACE_END
+#endif
+#define OPENMPT_NAMESPACE_END
+
+#else
+
+#ifndef OPENMPT_NAMESPACE
+#define OPENMPT_NAMESPACE OpenMPT
+#endif
+
+#ifndef OPENMPT_NAMESPACE_BEGIN
+#define OPENMPT_NAMESPACE_BEGIN namespace OPENMPT_NAMESPACE {
+#endif
+#ifndef OPENMPT_NAMESPACE_END
+#define OPENMPT_NAMESPACE_END }
+#endif
+
+#endif
+
+
+
+// platform configuration
+
+#ifdef MPT_WITH_MFC
+//#define MPT_MFC_FULL // use full MFC, including MFC controls
+#define _CSTRING_DISABLE_NARROW_WIDE_CONVERSION
+#endif // MPT_WITH_MFC
+
+#if defined(MODPLUG_TRACKER)
+#if MPT_OS_WINDOWS
+#if !defined(MPT_BUILD_WINESUPPORT)
+#ifndef MPT_MFC_FULL
+#define _AFX_NO_MFC_CONTROLS_IN_DIALOGS // Do not include support for MFC controls in dialogs (reduces binary bloat; remove this #define if you want to use MFC controls)
+#endif // !MPT_MFC_FULL
+#endif // !MPT_BUILD_WINESUPPORT
+#endif // MPT_OS_WINDOWS
+#endif // MODPLUG_TRACKER
+
+#if MPT_OS_WINDOWS
+
+#define WIN32_LEAN_AND_MEAN
+
+// windows.h excludes
+#define NOMEMMGR // GMEM_*, LMEM_*, GHND, LHND, associated routines
+#ifndef NOMINMAX
+#define NOMINMAX // Macros min(a,b) and max(a,b)
+#endif
+#define NOSERVICE // All Service Controller routines, SERVICE_ equates, etc.
+#define NOCOMM // COMM driver routines
+#define NOKANJI // Kanji support stuff.
+#define NOPROFILER // Profiler interface.
+#define NOMCX // Modem Configuration Extensions
+
+// mmsystem.h excludes
+#define MMNODRV
+//#define MMNOSOUND
+//#define MMNOWAVE
+//#define MMNOMIDI
+#define MMNOAUX
+#define MMNOMIXER
+//#define MMNOTIMER
+#define MMNOJOY
+#define MMNOMCI
+//#define MMNOMMIO
+//#define MMNOMMSYSTEM
+
+// mmreg.h excludes
+#define NOMMIDS
+//#define NONEWWAVE
+#define NONEWRIFF
+#define NOJPEGDIB
+#define NONEWIC
+#define NOBITMAP
+
+#endif // MPT_OS_WINDOWS
+
+
+
+// stdlib configuration
+
+#if MPT_COMPILER_CLANG
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wreserved-id-macro"
+#endif
+
+#define __STDC_CONSTANT_MACROS
+#define __STDC_FORMAT_MACROS
+#define __STDC_LIMIT_MACROS
+
+#define _USE_MATH_DEFINES
+
+#ifndef _FILE_OFFSET_BITS
+#define _FILE_OFFSET_BITS 64
+#endif
+
+#if MPT_COMPILER_CLANG
+#pragma clang diagnostic pop
+#endif
+
+
+
+// compiler configuration
+
+#if MPT_COMPILER_MSVC
+
+#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
+
+#pragma warning(default:4800) // Implicit conversion from 'int' to bool. Possible information loss
+
+#pragma warning(disable:4355) // 'this' : used in base member initializer list
+
+// happens for immutable classes (i.e. classes containing const members)
+#pragma warning(disable:4512) // assignment operator could not be generated
+
+#pragma warning(error:4309) // Treat "truncation of constant value"-warning as error.
+#pragma warning(error:4463) // Treat overflow; assigning value to bit-field that can only hold values from low_value to high_value"-warning as error.
+
+#ifdef MPT_BUILD_ANALYZED
+// Disable Visual Studio static analyzer warnings that generate too many false positives in VS2010.
+//#pragma warning(disable:6246)
+//#pragma warning(disable:6262)
+#pragma warning(disable:6297) // 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value.
+#pragma warning(disable:6326) // Potential comparison of a constant with another constant
+//#pragma warning(disable:6385)
+//#pragma warning(disable:6386)
+#endif // MPT_BUILD_ANALYZED
+
+#endif // MPT_COMPILER_MSVC
+
+#if MPT_COMPILER_CLANG
+
+#if defined(MPT_BUILD_MSVC)
+#pragma clang diagnostic warning "-Wimplicit-fallthrough"
+#endif // MPT_BUILD_MSVC
+
+#if defined(MODPLUG_TRACKER)
+#pragma clang diagnostic ignored "-Wunused-local-typedef"
+#endif // MODPLUG_TRACKER
+
+#endif // MPT_COMPILER_CLANG
+
+
+
+
+
+// standard library quirks
+
+
+
+
+
+// third-party library configuration
+
+#if MPT_OS_WINDOWS
+#ifndef UNICODE
+#define MPT_CHECK_WINDOWS_IGNORE_WARNING_NO_UNICODE
+#endif // !UNICODE
+#endif // MPT_OS_WINDOWS
+
+#ifdef MPT_WITH_ANCIENT
+#ifdef MPT_BUILD_MSVC_SHARED
+#define ANCIENT_API_DECLSPEC_DLLIMPORT
+#endif
+#endif
+
+#ifdef MPT_WITH_FLAC
+#ifdef MPT_BUILD_MSVC_STATIC
+#define FLAC__NO_DLL
+#endif
+#endif
+
+#ifdef MPT_WITH_SMBPITCHSHIFT
+#ifdef MPT_BUILD_MSVC_SHARED
+#define SMBPITCHSHIFT_USE_DLL
+#endif
+#endif
+
+#ifdef MPT_WITH_STBVORBIS
+#define STB_VORBIS_HEADER_ONLY
+#ifndef STB_VORBIS_NO_PULLDATA_API
+#define STB_VORBIS_NO_PULLDATA_API
+#endif
+#ifndef STB_VORBIS_NO_STDIO
+#define STB_VORBIS_NO_STDIO
+#endif
+#endif
+
+#ifdef MPT_WITH_VORBISFILE
+#ifndef OV_EXCLUDE_STATIC_CALLBACKS
+#define OV_EXCLUDE_STATIC_CALLBACKS
+#endif
+#endif
+
+#ifdef MPT_WITH_ZLIB
+#ifdef MPT_BUILD_MSVC_SHARED
+#define ZLIB_DLL
+#endif
+#endif
+
+
+
+#ifdef __cplusplus
+
+#include "mpt/base/namespace.hpp"
+
+OPENMPT_NAMESPACE_BEGIN
+
+namespace mpt {
+
+#ifndef MPT_NO_NAMESPACE
+using namespace ::mpt;
+#endif
+
+} // namespace mpt
+
+OPENMPT_NAMESPACE_END
+
+#endif