mirror of
https://github.com/XcodesOrg/XcodesApp.git
synced 2026-02-06 20:28:39 +01:00
59 lines
1.6 KiB
Swift
59 lines
1.6 KiB
Swift
//
|
|
// SDKs+Xcode.swift
|
|
// Xcodes
|
|
//
|
|
// Created by Matt Kiazyk on 2023-06-05.
|
|
// Copyright © 2023 Robots and Pencils. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import struct XCModel.SDKs
|
|
import XcodesKit
|
|
import SwiftUI
|
|
|
|
extension SDKs {
|
|
/// Loops through all SDK's and returns an array of buildNumbers (to be used to correlate runtimes)
|
|
func allBuilds() -> [String] {
|
|
var buildNumbers: [String] = []
|
|
|
|
if let iOS = self.iOS?.compactMap({ $0.build }) {
|
|
buildNumbers += iOS
|
|
}
|
|
if let tvOS = self.tvOS?.compactMap({ $0.build }) {
|
|
buildNumbers += tvOS
|
|
}
|
|
if let macOS = self.macOS?.compactMap({ $0.build }) {
|
|
buildNumbers += macOS
|
|
}
|
|
if let watchOS = self.watchOS?.compactMap({ $0.build }) {
|
|
buildNumbers += watchOS
|
|
}
|
|
if let visionOS = self.visionOS?.compactMap({ $0.build }) {
|
|
buildNumbers += visionOS
|
|
}
|
|
|
|
return buildNumbers
|
|
}
|
|
}
|
|
|
|
extension DownloadableRuntime {
|
|
func icon() -> Image {
|
|
switch self.platform {
|
|
case .iOS:
|
|
return Image(systemName: "iphone")
|
|
case .macOS:
|
|
return Image(systemName: "macwindow")
|
|
case .watchOS:
|
|
return Image(systemName: "applewatch")
|
|
case .tvOS:
|
|
return Image(systemName: "appletv")
|
|
case .visionOS:
|
|
if #available(macOS 14, *) {
|
|
return Image(systemName: "visionpro")
|
|
} else {
|
|
return Image(systemName: "eyeglasses")
|
|
}
|
|
}
|
|
}
|
|
}
|