Skip to content

Commit 90aa042

Browse files
committed
SwiftDriver: add support for baremetal targets (to reflect swiftlang/swift#35970)
1 parent 40a45ec commit 90aa042

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

Sources/SwiftDriver/Driver/Driver.swift

+5-1
Original file line numberDiff line numberDiff line change
@@ -2892,12 +2892,16 @@ extension Driver {
28922892

28932893
extension Triple {
28942894
func toolchainType(_ diagnosticsEngine: DiagnosticsEngine) throws -> Toolchain.Type {
2895+
guard let os else {
2896+
diagnosticsEngine.emit(.error_unknown_target(triple))
2897+
throw Driver.ErrorDiagnostics.emitted
2898+
}
28952899
switch os {
28962900
case .darwin, .macosx, .ios, .tvos, .watchos:
28972901
return DarwinToolchain.self
28982902
case .linux:
28992903
return GenericUnixToolchain.self
2900-
case .freeBSD, .haiku, .openbsd:
2904+
case .freeBSD, .haiku, .openbsd, .none:
29012905
return GenericUnixToolchain.self
29022906
case .wasi:
29032907
return WebAssemblyToolchain.self

Sources/SwiftDriver/Utilities/Triple+Platforms.swift

+5-2
Original file line numberDiff line numberDiff line change
@@ -282,9 +282,10 @@ extension Triple {
282282
/// identified as just `darwin` instead of by individual platform names.
283283
/// Defaults to `false`.
284284
public func platformName(conflatingDarwin: Bool = false) -> String? {
285-
switch os {
286-
case nil:
285+
guard let os else {
287286
fatalError("unknown OS")
287+
}
288+
switch os {
288289
case .darwin, .macosx, .ios, .tvos, .watchos:
289290
guard let darwinPlatform = darwinPlatform else {
290291
fatalError("unsupported darwin platform kind?")
@@ -314,6 +315,8 @@ extension Triple {
314315
return "haiku"
315316
case .wasi:
316317
return "wasi"
318+
case .none:
319+
return nil
317320

318321
// Explicitly spell out the remaining cases to force a compile error when
319322
// Triple updates

Sources/SwiftDriver/Utilities/Triple.swift

+3
Original file line numberDiff line numberDiff line change
@@ -1109,6 +1109,7 @@ extension Triple {
11091109
case hurd
11101110
case wasi
11111111
case emscripten
1112+
case none
11121113

11131114
var name: String {
11141115
return rawValue
@@ -1188,6 +1189,8 @@ extension Triple {
11881189
return .wasi
11891190
case _ where os.hasPrefix("emscripten"):
11901191
return .emscripten
1192+
case _ where os.hasPrefix("none"):
1193+
return Triple.OS.none
11911194
default:
11921195
return nil
11931196
}

0 commit comments

Comments
 (0)