From 7ba34cbcb015c687b821e73e7fe4350b82dadcfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Thu, 6 Aug 2020 18:12:30 +0200 Subject: [PATCH] Handle simulator platforms when parsing LC_BUILD_VERSION load command MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTBUG-85764 Change-Id: Ie46bee0937908e2dfedfa3532394dde015abf891 Reviewed-by: Volker Hilsheimer (cherry picked from commit 3911be61602695ed65e33e54bee38ee8bcd92539) Reviewed-by: Tor Arne Vestbø --- src/corelib/kernel/qcore_mac.cpp | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/corelib/kernel/qcore_mac.cpp b/src/corelib/kernel/qcore_mac.cpp index 9090d87be57..22b5b54308d 100644 --- a/src/corelib/kernel/qcore_mac.cpp +++ b/src/corelib/kernel/qcore_mac.cpp @@ -185,6 +185,19 @@ QOperatingSystemVersion QMacVersion::currentRuntime() return QOperatingSystemVersion::current(); } +// Mach-O platforms +enum Platform { + macOS = 1, + iOS = 2, + tvOS = 3, + watchOS = 4, + bridgeOS = 5, + macCatalyst = 6, + iOSSimulator = 7, + tvOSSimulator = 8, + watchOSSimulator = 9 +}; + QMacVersion::VersionTuple QMacVersion::versionsForImage(const mach_header *machHeader) { static auto osForLoadCommand = [](uint32_t cmd) { @@ -199,11 +212,19 @@ QMacVersion::VersionTuple QMacVersion::versionsForImage(const mach_header *machH static auto osForPlatform = [](uint32_t platform) { switch (platform) { - case 1: return QOperatingSystemVersion::MacOS; - case 2: return QOperatingSystemVersion::IOS; - case 3: return QOperatingSystemVersion::TvOS; - case 4: return QOperatingSystemVersion::WatchOS; - default: return QOperatingSystemVersion::Unknown; + case Platform::macOS: + return QOperatingSystemVersion::MacOS; + case Platform::iOS: + case Platform::iOSSimulator: + return QOperatingSystemVersion::IOS; + case Platform::tvOS: + case Platform::tvOSSimulator: + return QOperatingSystemVersion::TvOS; + case Platform::watchOS: + case Platform::watchOSSimulator: + return QOperatingSystemVersion::WatchOS; + default: + return QOperatingSystemVersion::Unknown; } };