From 3911be61602695ed65e33e54bee38ee8bcd92539 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 Task-number: QTBUG-85764 Pick-to: 5.15 Pick-to: 5.12 Change-Id: Ie46bee0937908e2dfedfa3532394dde015abf891 Reviewed-by: Volker Hilsheimer --- src/corelib/kernel/qcore_mac.mm | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/corelib/kernel/qcore_mac.mm b/src/corelib/kernel/qcore_mac.mm index 7e45defc70..f0e4ecc6e2 100644 --- a/src/corelib/kernel/qcore_mac.mm +++ b/src/corelib/kernel/qcore_mac.mm @@ -564,6 +564,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) { @@ -578,11 +591,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; } };