1 /* 2 * BuildSettings.h 3 * --------------- 4 * Purpose: Global, user settable compile time flags (and some global system header 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 11 #pragma once 12 13 14 15 #include "mpt/base/detect_compiler.hpp" 16 #include "mpt/base/detect_os.hpp" 17 #include "mpt/base/detect_quirks.hpp" 18 19 20 21 // set windows version early so that we can deduce dependencies from SDK version 22 23 #if MPT_OS_WINDOWS 24 25 #if !defined(WINVER) && !defined(_WIN32_WINDOWS) && !defined(_WIN32_WINNT) 26 #define _WIN32_WINNT 0x0601 // _WIN32_WINNT_WIN7 27 #endif 28 29 #ifndef WINVER 30 #if defined(_WIN32_WINNT) 31 #define WINVER _WIN32_WINNT 32 #elif defined(_WIN32_WINDOWS) 33 #define WINVER _WIN32_WINDOWS 34 #endif 35 #endif 36 37 #endif // MPT_OS_WINDOWS 38 39 40 41 #if defined(MODPLUG_TRACKER) && defined(LIBOPENMPT_BUILD) 42 #error "either MODPLUG_TRACKER or LIBOPENMPT_BUILD has to be defined" 43 #elif defined(MODPLUG_TRACKER) 44 // nothing 45 #define MPT_INLINE_NS mptx 46 #elif defined(LIBOPENMPT_BUILD) 47 // nothing 48 #define MPT_INLINE_NS mpt_libopenmpt 49 #else 50 #error "either MODPLUG_TRACKER or LIBOPENMPT_BUILD has to be defined" 51 #endif // MODPLUG_TRACKER || LIBOPENMPT_BUILD 52 53 54 55 #if defined(LIBOPENMPT_BUILD) 56 57 // Fixup dependencies which are currently not used in libopenmpt itself, 58 // however might be set by some build systems like autotools anyway for simplicity. 59 #ifdef MPT_WITH_FLAC 60 #undef MPT_WITH_FLAC 61 #endif 62 63 #endif // LIBOPENMPT_BUILD 64 65 66 67 // Dependencies from the MSVC build system 68 #if defined(MPT_BUILD_MSVC) 69 70 // This section defines which dependencies are available when building with 71 // MSVC. Other build systems provide MPT_WITH_* macros via command-line or other 72 // means. 73 // OpenMPT and libopenmpt should compile and run successfully (albeit with 74 // reduced functionality) with any or all dependencies missing/disabled. 75 // The defaults match the bundled third-party libraries with the addition of 76 // ASIO and VST SDKs. 77 78 #if defined(MODPLUG_TRACKER) 79 80 #if MPT_OS_WINDOWS 81 #if !defined(MPT_BUILD_WINESUPPORT) && !defined(MPT_BUILD_UPDATESIGNTOOL) 82 #define MPT_WITH_MFC 83 #endif // !MPT_BUILD_WINESUPPORT && !MPT_BUILD_UPDATESIGNTOOL 84 #endif // MPT_OS_WINDOWS 85 86 // OpenMPT-only dependencies 87 #define MPT_WITH_ANCIENT 88 #if !defined(MPT_BUILD_RETRO) && !MPT_COMPILER_CLANG && !MPT_MSVC_BEFORE(2019,0) 89 // disabled for VS2017 because of multiple initialization of inline variables 90 // https://developercommunity.visualstudio.com/t/static-inline-variable-gets-destroyed-multiple-tim/297876 91 #define MPT_WITH_ASIO 92 #endif 93 #if defined(MPT_BUILD_RETRO) 94 #define MPT_WITH_DIRECTSOUND 95 #endif 96 #define MPT_WITH_DMO 97 #define MPT_WITH_LAME 98 #define MPT_WITH_LHASA 99 #define MPT_WITH_MINIZIP 100 #define MPT_WITH_NLOHMANNJSON 101 #define MPT_WITH_OPUS 102 #define MPT_WITH_OPUSENC 103 #define MPT_WITH_OPUSFILE 104 #define MPT_WITH_PORTAUDIO 105 //#define MPT_WITH_PULSEAUDIO 106 //#define MPT_WITH_PULSEAUDIOSIMPLE 107 #define MPT_WITH_RTAUDIO 108 #define MPT_WITH_SMBPITCHSHIFT 109 #define MPT_WITH_UNRAR 110 #define MPT_WITH_VORBISENC 111 #define MPT_WITH_VST 112 113 // OpenMPT and libopenmpt dependencies (not for openmp123, player plugins or examples) 114 //#define MPT_WITH_DL 115 #define MPT_WITH_FLAC 116 //#define MPT_WITH_LTDL 117 #if MPT_OS_WINDOWS 118 #if (_WIN32_WINNT >= 0x0601) 119 #define MPT_WITH_MEDIAFOUNDATION 120 #endif 121 #endif 122 //#define MPT_WITH_MINIMP3 123 //#define MPT_WITH_MINIZ 124 #define MPT_WITH_MPG123 125 #define MPT_WITH_OGG 126 //#define MPT_WITH_STBVORBIS 127 #define MPT_WITH_VORBIS 128 #define MPT_WITH_VORBISFILE 129 #if MPT_OS_WINDOWS 130 #if (_WIN32_WINNT >= 0x0A00) 131 #define MPT_WITH_WINDOWS10 132 #endif 133 #endif 134 #define MPT_WITH_ZLIB 135 136 #endif // MODPLUG_TRACKER 137 138 #if defined(LIBOPENMPT_BUILD) 139 140 // OpenMPT and libopenmpt dependencies (not for openmp123, player plugins or examples) 141 #if defined(LIBOPENMPT_BUILD_FULL) && defined(LIBOPENMPT_BUILD_SMALL) 142 #error "only one of LIBOPENMPT_BUILD_FULL or LIBOPENMPT_BUILD_SMALL can be defined" 143 #endif // LIBOPENMPT_BUILD_FULL && LIBOPENMPT_BUILD_SMALL 144 145 #if defined(LIBOPENMPT_BUILD_SMALL) 146 147 //#define MPT_WITH_DL 148 //#define MPT_WITH_FLAC 149 //#define MPT_WITH_LTDL 150 //#define MPT_WITH_MEDIAFOUNDATION 151 #define MPT_WITH_MINIMP3 152 #define MPT_WITH_MINIZ 153 //#define MPT_WITH_MPG123 154 //#define MPT_WITH_OGG 155 #define MPT_WITH_STBVORBIS 156 //#define MPT_WITH_VORBIS 157 //#define MPT_WITH_VORBISFILE 158 //#define MPT_WITH_ZLIB 159 160 #else // !LIBOPENMPT_BUILD_SMALL 161 162 //#define MPT_WITH_DL 163 //#define MPT_WITH_FLAC 164 //#define MPT_WITH_LTDL 165 //#define MPT_WITH_MEDIAFOUNDATION 166 //#define MPT_WITH_MINIMP3 167 //#define MPT_WITH_MINIZ 168 #define MPT_WITH_MPG123 169 #define MPT_WITH_OGG 170 //#define MPT_WITH_STBVORBIS 171 #define MPT_WITH_VORBIS 172 #define MPT_WITH_VORBISFILE 173 #define MPT_WITH_ZLIB 174 175 #endif // LIBOPENMPT_BUILD_SMALL 176 177 #endif // LIBOPENMPT_BUILD 178 179 #endif // MPT_BUILD_MSVC 180 181 182 #if defined(MPT_BUILD_XCODE) 183 184 #if defined(MODPLUG_TRACKER) 185 186 // n/a 187 188 #endif // MODPLUG_TRACKER 189 190 #if defined(LIBOPENMPT_BUILD) 191 192 //#define MPT_WITH_DL 193 //#define MPT_WITH_FLAC 194 //#define MPT_WITH_LTDL 195 //#define MPT_WITH_MEDIAFOUNDATION 196 //#define MPT_WITH_MINIMP3 197 //#define MPT_WITH_MINIZ 198 #define MPT_WITH_MPG123 199 #define MPT_WITH_OGG 200 //#define MPT_WITH_STBVORBIS 201 #define MPT_WITH_VORBIS 202 #define MPT_WITH_VORBISFILE 203 #define MPT_WITH_ZLIB 204 205 #endif // LIBOPENMPT_BUILD 206 207 #endif // MPT_BUILD_XCODE 208 209 210 211 #if defined(MODPLUG_TRACKER) 212 213 #define MPT_UPDATE_LEGACY 1 214 215 // Enable built-in test suite. 216 #if defined(MPT_BUILD_DEBUG) || defined(MPT_BUILD_CHECKED) 217 #define ENABLE_TESTS 218 #endif 219 220 // Disable any file saving functionality (not really useful except for the player library) 221 //#define MODPLUG_NO_FILESAVE 222 223 // Disable any debug logging 224 #if !defined(MPT_BUILD_DEBUG) && !defined(MPT_BUILD_CHECKED) && !defined(MPT_BUILD_WINESUPPORT) 225 #define MPT_LOG_GLOBAL_LEVEL_STATIC 226 #define MPT_LOG_GLOBAL_LEVEL 0 227 #endif 228 229 // Enable all individual logging macros and MPT_LOG calls 230 //#define MPT_ALL_LOGGING 231 232 // Disable all runtime asserts 233 #if !defined(MPT_BUILD_DEBUG) && !defined(MPT_BUILD_CHECKED) && !defined(MPT_BUILD_WINESUPPORT) 234 #define NO_ASSERTS 235 #endif 236 237 // Enable global ComponentManager 238 #define MPT_COMPONENT_MANAGER 1 239 240 // Support for externally linked samples e.g. in MPTM files 241 #define MPT_EXTERNAL_SAMPLES 242 243 // Support mpt::ChartsetLocale 244 #define MPT_ENABLE_CHARSET_LOCALE 245 246 // Use architecture-specific intrinsics 247 #define MPT_ENABLE_ARCH_INTRINSICS 248 249 #if !defined(MPT_BUILD_RETRO) 250 #define MPT_ENABLE_UPDATE 251 #endif // !MPT_BUILD_RETRO 252 253 // Disable unarchiving support 254 //#define NO_ARCHIVE_SUPPORT 255 256 // Disable the built-in reverb effect 257 //#define NO_REVERB 258 259 // Disable built-in miscellaneous DSP effects (surround, mega bass, noise reduction) 260 //#define NO_DSP 261 262 // Disable the built-in equalizer. 263 //#define NO_EQ 264 265 // Disable the built-in automatic gain control 266 //#define NO_AGC 267 268 // (HACK) Define to build without any plugin support 269 //#define NO_PLUGINS 270 271 #endif // MODPLUG_TRACKER 272 273 274 275 #if defined(LIBOPENMPT_BUILD) 276 277 #if (defined(_DEBUG) || defined(DEBUG)) && !defined(MPT_BUILD_DEBUG) 278 #define MPT_BUILD_DEBUG 279 #endif 280 281 #if defined(LIBOPENMPT_BUILD_TEST) 282 #define ENABLE_TESTS 283 #else 284 #define MODPLUG_NO_FILESAVE 285 #endif 286 #if defined(MPT_BUILD_ANALZYED) || defined(MPT_BUILD_DEBUG) || defined(MPT_BUILD_CHECKED) || defined(ENABLE_TESTS) 287 // enable asserts 288 #else 289 #define NO_ASSERTS 290 #endif 291 //#define MPT_ALL_LOGGING 292 #define MPT_COMPONENT_MANAGER 0 293 //#define MPT_EXTERNAL_SAMPLES 294 #if defined(ENABLE_TESTS) || defined(MPT_BUILD_HACK_ARCHIVE_SUPPORT) 295 #define MPT_ENABLE_CHARSET_LOCALE 296 #else 297 //#define MPT_ENABLE_CHARSET_LOCALE 298 #endif 299 // Do not use architecture-specifid intrinsics in library builds. There is just about no codepath which would use it anyway. 300 //#define MPT_ENABLE_ARCH_INTRINSICS 301 #if defined(MPT_BUILD_HACK_ARCHIVE_SUPPORT) 302 //#define NO_ARCHIVE_SUPPORT 303 #else 304 #define NO_ARCHIVE_SUPPORT 305 #endif 306 //#define NO_REVERB 307 #define NO_DSP 308 #define NO_EQ 309 #define NO_AGC 310 //#define NO_PLUGINS 311 312 #endif // LIBOPENMPT_BUILD 313 314 315 316 #if MPT_OS_WINDOWS 317 318 #ifndef MPT_ENABLE_CHARSET_LOCALE 319 #define MPT_ENABLE_CHARSET_LOCALE 320 #endif 321 322 #elif MPT_OS_LINUX 323 324 #elif MPT_OS_ANDROID 325 326 #elif MPT_OS_EMSCRIPTEN 327 328 #elif MPT_OS_MACOSX_OR_IOS 329 330 #elif MPT_OS_DJGPP 331 332 #endif 333 334 335 336 #if (MPT_COMPILER_MSVC && !defined(MPT_USTRING_MODE_UTF8_FORCE)) || defined(MODPLUG_TRACKER) 337 338 // Use wide strings for MSVC because this is the native encoding on 339 // microsoft platforms. 340 341 // mpt::ToWString, mpt::wfmt, ConvertStrTo<std::wstring> 342 // Required by the tracker to ease interfacing with WinAPI. 343 // Required by MPT_USTRING_MODE_WIDE to ease type tunneling in mpt::format. 344 #define MPT_WSTRING_FORMAT 1 345 346 #else 347 348 #define MPT_WSTRING_FORMAT 0 349 350 #endif 351 352 #if (MPT_COMPILER_MSVC && !defined(MPT_USTRING_MODE_UTF8_FORCE)) || MPT_OS_WINDOWS || MPT_WSTRING_FORMAT 353 354 // mpt::ToWide 355 // Required on Windows by mpt::PathString. 356 // Required by MPT_USTRING_MODE_WIDE as they share the conversion functions. 357 // Required by MPT_WSTRING_FORMAT because of std::string<->std::wstring conversion in mpt::ToAString and mpt::ToWString. 358 #define MPT_WSTRING_CONVERT 1 359 360 #else 361 362 #define MPT_WSTRING_CONVERT 0 363 364 #endif 365 366 367 368 // fixing stuff up 369 370 #if defined(MPT_BUILD_ANALYZED) || defined(MPT_BUILD_CHECKED) 371 #ifdef NO_ASSERTS 372 #undef NO_ASSERTS // static or dynamic analyzers want assertions on 373 #endif 374 #endif 375 376 #if defined(MPT_BUILD_FUZZER) 377 #ifndef MPT_FUZZ_TRACKER 378 #define MPT_FUZZ_TRACKER 379 #endif 380 #endif 381 382 #if defined(MPT_ENABLE_ARCH_INTRINSICS) 383 #if MPT_COMPILER_MSVC && defined(_M_IX86) 384 385 #define MPT_ENABLE_ARCH_X86 386 387 #define MPT_ENABLE_ARCH_INTRINSICS_SSE 388 #define MPT_ENABLE_ARCH_INTRINSICS_SSE2 389 390 #elif MPT_COMPILER_MSVC && defined(_M_X64) 391 392 #define MPT_ENABLE_ARCH_AMD64 393 394 #define MPT_ENABLE_ARCH_INTRINSICS_SSE 395 #define MPT_ENABLE_ARCH_INTRINSICS_SSE2 396 397 #endif // arch 398 #endif // MPT_ENABLE_ARCH_INTRINSICS 399 400 #if defined(ENABLE_TESTS) && defined(MODPLUG_NO_FILESAVE) 401 #undef MODPLUG_NO_FILESAVE // tests recommend file saving 402 #endif 403 404 #if defined(MPT_WITH_ZLIB) && defined(MPT_WITH_MINIZ) 405 // Only one deflate implementation should be used. Prefer zlib. 406 #undef MPT_WITH_MINIZ 407 #endif 408 409 #if !MPT_OS_WINDOWS && defined(MPT_WITH_MEDIAFOUNDATION) 410 #undef MPT_WITH_MEDIAFOUNDATION // MediaFoundation requires Windows 411 #endif 412 413 #if !MPT_COMPILER_MSVC && !MPT_COMPILER_CLANG && defined(MPT_WITH_MEDIAFOUNDATION) 414 #undef MPT_WITH_MEDIAFOUNDATION // MediaFoundation requires MSVC or Clang due to ATL (no MinGW support) 415 #endif 416 417 #if (defined(MPT_WITH_MPG123) || defined(MPT_WITH_MINIMP3)) && !defined(MPT_ENABLE_MP3_SAMPLES) 418 #define MPT_ENABLE_MP3_SAMPLES 419 #endif 420 421 #if defined(ENABLE_TESTS) 422 #define MPT_ENABLE_FILEIO // Test suite requires PathString for file loading. 423 #endif 424 425 #if defined(MODPLUG_TRACKER) && !defined(MPT_ENABLE_FILEIO) 426 #define MPT_ENABLE_FILEIO // Tracker requires disk file io 427 #endif 428 429 #if defined(MPT_EXTERNAL_SAMPLES) && !defined(MPT_ENABLE_FILEIO) 430 #define MPT_ENABLE_FILEIO // External samples require disk file io 431 #endif 432 433 #if defined(NO_PLUGINS) 434 // Any plugin type requires NO_PLUGINS to not be defined. 435 #if defined(MPT_WITH_VST) 436 #undef MPT_WITH_VST 437 #endif 438 #endif 439 440 441 442 #if defined(MODPLUG_TRACKER) && !defined(MPT_BUILD_WINESUPPORT) && !defined(MPT_BUILD_WINESUPPORT_WRAPPER) 443 #ifndef MPT_NO_NAMESPACE 444 #define MPT_NO_NAMESPACE 445 #endif 446 #endif 447 448 #if defined(MPT_NO_NAMESPACE) 449 450 #ifdef OPENMPT_NAMESPACE 451 #undef OPENMPT_NAMESPACE 452 #endif 453 #define OPENMPT_NAMESPACE 454 455 #ifdef OPENMPT_NAMESPACE_BEGIN 456 #undef OPENMPT_NAMESPACE_BEGIN 457 #endif 458 #define OPENMPT_NAMESPACE_BEGIN 459 460 #ifdef OPENMPT_NAMESPACE_END 461 #undef OPENMPT_NAMESPACE_END 462 #endif 463 #define OPENMPT_NAMESPACE_END 464 465 #else 466 467 #ifndef OPENMPT_NAMESPACE 468 #define OPENMPT_NAMESPACE OpenMPT 469 #endif 470 471 #ifndef OPENMPT_NAMESPACE_BEGIN 472 #define OPENMPT_NAMESPACE_BEGIN namespace OPENMPT_NAMESPACE { 473 #endif 474 #ifndef OPENMPT_NAMESPACE_END 475 #define OPENMPT_NAMESPACE_END } 476 #endif 477 478 #endif 479 480 481 482 // platform configuration 483 484 #ifdef MPT_WITH_MFC 485 //#define MPT_MFC_FULL // use full MFC, including MFC controls 486 #define _CSTRING_DISABLE_NARROW_WIDE_CONVERSION 487 #endif // MPT_WITH_MFC 488 489 #if defined(MODPLUG_TRACKER) 490 #if MPT_OS_WINDOWS 491 #if !defined(MPT_BUILD_WINESUPPORT) 492 #ifndef MPT_MFC_FULL 493 #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) 494 #endif // !MPT_MFC_FULL 495 #endif // !MPT_BUILD_WINESUPPORT 496 #endif // MPT_OS_WINDOWS 497 #endif // MODPLUG_TRACKER 498 499 #if MPT_OS_WINDOWS 500 501 #define WIN32_LEAN_AND_MEAN 502 503 // windows.h excludes 504 #define NOMEMMGR // GMEM_*, LMEM_*, GHND, LHND, associated routines 505 #define NOMINMAX // Macros min(a,b) and max(a,b) 506 #define NOSERVICE // All Service Controller routines, SERVICE_ equates, etc. 507 #define NOCOMM // COMM driver routines 508 #define NOKANJI // Kanji support stuff. 509 #define NOPROFILER // Profiler interface. 510 #define NOMCX // Modem Configuration Extensions 511 512 // mmsystem.h excludes 513 #define MMNODRV 514 //#define MMNOSOUND 515 //#define MMNOWAVE 516 //#define MMNOMIDI 517 #define MMNOAUX 518 #define MMNOMIXER 519 //#define MMNOTIMER 520 #define MMNOJOY 521 #define MMNOMCI 522 //#define MMNOMMIO 523 //#define MMNOMMSYSTEM 524 525 // mmreg.h excludes 526 #define NOMMIDS 527 //#define NONEWWAVE 528 #define NONEWRIFF 529 #define NOJPEGDIB 530 #define NONEWIC 531 #define NOBITMAP 532 533 #endif // MPT_OS_WINDOWS 534 535 536 537 // stdlib configuration 538 539 #if MPT_COMPILER_CLANG 540 #pragma clang diagnostic push 541 #pragma clang diagnostic ignored "-Wreserved-id-macro" 542 #endif 543 544 #define __STDC_CONSTANT_MACROS 545 #define __STDC_FORMAT_MACROS 546 #define __STDC_LIMIT_MACROS 547 548 #define _USE_MATH_DEFINES 549 550 #ifndef _FILE_OFFSET_BITS 551 #define _FILE_OFFSET_BITS 64 552 #endif 553 554 #if MPT_COMPILER_CLANG 555 #pragma clang diagnostic pop 556 #endif 557 558 559 560 // compiler configuration 561 562 #if MPT_COMPILER_MSVC 563 564 #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers 565 566 #pragma warning(default:4800) // Implicit conversion from 'int' to bool. Possible information loss 567 568 #pragma warning(disable:4355) // 'this' : used in base member initializer list 569 570 // happens for immutable classes (i.e. classes containing const members) 571 #pragma warning(disable:4512) // assignment operator could not be generated 572 573 #pragma warning(error:4309) // Treat "truncation of constant value"-warning as error. 574 #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. 575 576 #ifdef MPT_BUILD_ANALYZED 577 // Disable Visual Studio static analyzer warnings that generate too many false positives in VS2010. 578 //#pragma warning(disable:6246) 579 //#pragma warning(disable:6262) 580 #pragma warning(disable:6297) // 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value. 581 #pragma warning(disable:6326) // Potential comparison of a constant with another constant 582 //#pragma warning(disable:6385) 583 //#pragma warning(disable:6386) 584 #endif // MPT_BUILD_ANALYZED 585 586 #endif // MPT_COMPILER_MSVC 587 588 #if MPT_COMPILER_CLANG 589 590 #if defined(MPT_BUILD_MSVC) 591 #pragma clang diagnostic warning "-Wimplicit-fallthrough" 592 #endif // MPT_BUILD_MSVC 593 594 #if defined(MODPLUG_TRACKER) 595 #pragma clang diagnostic ignored "-Wunused-local-typedef" 596 #endif // MODPLUG_TRACKER 597 598 #endif // MPT_COMPILER_CLANG 599 600 601 602 603 604 // standard library quirks 605 606 607 608 609 610 // third-party library configuration 611 612 #if MPT_OS_WINDOWS 613 #ifndef UNICODE 614 #define MPT_CHECK_WINDOWS_IGNORE_WARNING_NO_UNICODE 615 #endif // !UNICODE 616 #endif // MPT_OS_WINDOWS 617 618 #ifdef MPT_WITH_ANCIENT 619 #ifdef MPT_BUILD_MSVC_SHARED 620 #define ANCIENT_API_DECLSPEC_DLLIMPORT 621 #endif 622 #endif 623 624 #ifdef MPT_WITH_FLAC 625 #ifdef MPT_BUILD_MSVC_STATIC 626 #define FLAC__NO_DLL 627 #endif 628 #endif 629 630 #ifdef MPT_WITH_SMBPITCHSHIFT 631 #ifdef MPT_BUILD_MSVC_SHARED 632 #define SMBPITCHSHIFT_USE_DLL 633 #endif 634 #endif 635 636 #ifdef MPT_WITH_STBVORBIS 637 #define STB_VORBIS_HEADER_ONLY 638 #ifndef STB_VORBIS_NO_PULLDATA_API 639 #define STB_VORBIS_NO_PULLDATA_API 640 #endif 641 #ifndef STB_VORBIS_NO_STDIO 642 #define STB_VORBIS_NO_STDIO 643 #endif 644 #endif 645 646 #ifdef MPT_WITH_VORBISFILE 647 #ifndef OV_EXCLUDE_STATIC_CALLBACKS 648 #define OV_EXCLUDE_STATIC_CALLBACKS 649 #endif 650 #endif 651 652 #ifdef MPT_WITH_ZLIB 653 #ifdef MPT_BUILD_MSVC_SHARED 654 #define ZLIB_DLL 655 #endif 656 #endif 657 658 659 660 #ifdef __cplusplus 661 662 #include "mpt/base/namespace.hpp" 663 664 OPENMPT_NAMESPACE_BEGIN 665 666 namespace mpt { 667 668 #ifndef MPT_NO_NAMESPACE 669 using namespace ::mpt; 670 #endif 671 672 } // namespace mpt 673 674 OPENMPT_NAMESPACE_END 675 676 #endif 677