From: <sv...@op...> - 2024-12-26 19:24:09
|
Author: manx Date: Thu Dec 26 20:23:57 2024 New Revision: 22615 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22615 Log: Merged revision(s) 22608 from trunk/OpenMPT: [Fix] mpt/base/detect_quirks.hpp: Add MPT_LIBCXX_QUIRK_NO_OPTIONAL_VALUE for older Apple Clang. See <https://github.com/fink/fink-distributions/issues/1202>. ........ Modified: branches/OpenMPT-1.30/ (props changed) branches/OpenMPT-1.30/common/mptFileIO.cpp branches/OpenMPT-1.30/soundlib/Dlsbank.cpp branches/OpenMPT-1.30/soundlib/Load_mod.cpp branches/OpenMPT-1.30/src/mpt/base/detect_quirks.hpp branches/OpenMPT-1.30/src/mpt/library/library.hpp Modified: branches/OpenMPT-1.30/common/mptFileIO.cpp ============================================================================== --- branches/OpenMPT-1.30/common/mptFileIO.cpp Thu Dec 26 20:18:00 2024 (r22614) +++ branches/OpenMPT-1.30/common/mptFileIO.cpp Thu Dec 26 20:23:57 2024 (r22615) @@ -562,7 +562,11 @@ m_IsTempFile = true; } else { +#if defined(MPT_LIBCXX_QUIRK_NO_OPTIONAL_VALUE) + m_Filename = *(file.GetOptionalFileName()); +#else m_Filename = file.GetOptionalFileName().value(); +#endif } } catch (const std::runtime_error &) { Modified: branches/OpenMPT-1.30/soundlib/Dlsbank.cpp ============================================================================== --- branches/OpenMPT-1.30/soundlib/Dlsbank.cpp Thu Dec 26 20:18:00 2024 (r22614) +++ branches/OpenMPT-1.30/soundlib/Dlsbank.cpp Thu Dec 26 20:23:57 2024 (r22615) @@ -1306,7 +1306,13 @@ uint32 nInsDef; if(file.GetOptionalFileName()) + { +#if defined(MPT_LIBCXX_QUIRK_NO_OPTIONAL_VALUE) + m_szFileName = *(file.GetOptionalFileName()); +#else m_szFileName = file.GetOptionalFileName().value(); +#endif + } file.Rewind(); size_t dwMemLength = file.GetLength(); Modified: branches/OpenMPT-1.30/soundlib/Load_mod.cpp ============================================================================== --- branches/OpenMPT-1.30/soundlib/Load_mod.cpp Thu Dec 26 20:18:00 2024 (r22614) +++ branches/OpenMPT-1.30/soundlib/Load_mod.cpp Thu Dec 26 20:23:57 2024 (r22615) @@ -1244,7 +1244,11 @@ FileReader amData; if(file.GetOptionalFileName()) { +#if defined(MPT_LIBCXX_QUIRK_NO_OPTIONAL_VALUE) + mpt::PathString filename = *(file.GetOptionalFileName()); +#else mpt::PathString filename = file.GetOptionalFileName().value(); +#endif // Find instrument definition file const mpt::PathString exts[] = {P_(".nt"), P_(".NT"), P_(".as"), P_(".AS")}; for(const auto &ext : exts) Modified: branches/OpenMPT-1.30/src/mpt/base/detect_quirks.hpp ============================================================================== --- branches/OpenMPT-1.30/src/mpt/base/detect_quirks.hpp Thu Dec 26 20:18:00 2024 (r22614) +++ branches/OpenMPT-1.30/src/mpt/base/detect_quirks.hpp Thu Dec 26 20:23:57 2024 (r22615) @@ -157,4 +157,20 @@ +#if MPT_OS_MACOSX_OR_IOS +#if defined(TARGET_OS_OSX) +#if TARGET_OS_OSX +#if !defined(MAC_OS_X_VERSION_10_14) +#define MPT_LIBCXX_QUIRK_NO_OPTIONAL_VALUE +#else +#if (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_14) +#define MPT_LIBCXX_QUIRK_NO_OPTIONAL_VALUE +#endif +#endif +#endif +#endif +#endif + + + #endif // MPT_BASE_DETECT_QUIRKS_HPP Modified: branches/OpenMPT-1.30/src/mpt/library/library.hpp ============================================================================== --- branches/OpenMPT-1.30/src/mpt/library/library.hpp Thu Dec 26 20:18:00 2024 (r22614) +++ branches/OpenMPT-1.30/src/mpt/library/library.hpp Thu Dec 26 20:23:57 2024 (r22615) @@ -184,7 +184,11 @@ if (!optionalfilename) { return std::nullopt; } +#if defined(MPT_LIBCXX_QUIRK_NO_OPTIONAL_VALUE) + mpt::path & filename = *optionalfilename; +#else mpt::path & filename = optionalfilename.value(); +#endif if (filename.empty()) { return std::nullopt; } @@ -330,7 +334,11 @@ if (!optionalfilename) { return std::nullopt; } +#if defined(MPT_LIBCXX_QUIRK_NO_OPTIONAL_VALUE) + mpt::path & filename = *optionalfilename; +#else mpt::path & filename = optionalfilename.value(); +#endif if (filename.empty()) { return std::nullopt; } @@ -384,7 +392,11 @@ if (!optionalfilename) { return std::nullopt; } +#if defined(MPT_LIBCXX_QUIRK_NO_OPTIONAL_VALUE) + mpt::path & filename = *optionalfilename; +#else mpt::path & filename = optionalfilename.value(); +#endif if (filename.empty()) { return std::nullopt; } |