Skip to content

Commit 40aabaa

Browse files
authored
Merge pull request #864 from nkcsgexi/resilient-platform-name
SDK: reliably collect platform name from canonical name
2 parents f537e9e + c48695d commit 40aabaa

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

Sources/SwiftDriver/Toolchains/DarwinToolchain.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ public final class DarwinToolchain: Toolchain {
240240
case canonicalName = "CanonicalName"
241241
}
242242

243-
public enum SDKPlatformKind: String {
243+
public enum SDKPlatformKind: String, CaseIterable {
244244
case macosx
245245
case iphoneos
246246
case iphonesimulator
@@ -288,9 +288,9 @@ public final class DarwinToolchain: Toolchain {
288288
let keyedContainer = try decoder.container(keyedBy: CodingKeys.self)
289289

290290
self.versionString = try keyedContainer.decode(String.self, forKey: .version)
291-
self.canonicalName = try keyedContainer.decode(String.self, forKey: .canonicalName)
292-
let verRange = canonicalName.range(of: versionString)!
293-
self.platformKind = SDKPlatformKind(rawValue: String(canonicalName[..<verRange.lowerBound])) ?? SDKPlatformKind.unknown
291+
let canonicalName = try keyedContainer.decode(String.self, forKey: .canonicalName)
292+
self.platformKind = SDKPlatformKind.allCases.first { canonicalName.hasPrefix($0.rawValue) } ?? SDKPlatformKind.unknown
293+
self.canonicalName = canonicalName
294294
guard let version = try? Version(versionString: versionString, usesLenientParsing: true) else {
295295
throw DecodingError.dataCorruptedError(forKey: .version,
296296
in: keyedContainer,

0 commit comments

Comments
 (0)