Skip to content

Commit 7c4c479

Browse files
FreeBSD improvements and bug fixes (#243)
- Include FreeBSD version number in derived target triple - Always use `rawValue` when using OS enum as string --------- Co-authored-by: Max Desiatov <[email protected]>
1 parent ab16fe7 commit 7c4c479

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

Sources/GeneratorCLI/GeneratorCLI.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -345,12 +345,12 @@ extension GeneratorCLI {
345345
)
346346
var freeBSDVersion: String
347347

348-
func deriveTargetTriple(hostTriples: [Triple]) throws -> Triple {
348+
func deriveTargetTriple(hostTriples: [Triple], freeBSDVersion: String) throws -> Triple {
349349
if let target = generatorOptions.target, target.os == .freeBSD {
350350
return target
351351
}
352352
if let arch = generatorOptions.targetArch {
353-
let target = Triple(arch: arch, vendor: nil, os: .freeBSD)
353+
let target = Triple(arch: arch, vendor: nil, os: .freeBSD, version: freeBSDVersion)
354354
appLogger.warning(
355355
"""
356356
Using `--target-arch \(arch)` defaults to `\(target.triple)`. \
@@ -375,7 +375,7 @@ extension GeneratorCLI {
375375
}
376376

377377
let hostTriples = try self.generatorOptions.deriveHostTriples()
378-
let targetTriple = try self.deriveTargetTriple(hostTriples: hostTriples)
378+
let targetTriple = try self.deriveTargetTriple(hostTriples: hostTriples, freeBSDVersion: self.freeBSDVersion)
379379

380380
let sourceSwiftToolchain: FilePath?
381381
if let fromSwiftToolchain {

Sources/SwiftSDKGenerator/PlatformModels/Triple.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,19 @@ extension Triple: @unchecked Sendable {}
1818

1919
extension Triple {
2020
public init(arch: Arch, vendor: Vendor?, os: OS, environment: Environment) {
21+
let os = os.rawValue
2122
self.init("\(arch)-\(vendor?.rawValue ?? "unknown")-\(os)-\(environment)", normalizing: true)
2223
}
2324

2425
public init(arch: Arch, vendor: Vendor?, os: OS) {
26+
let os = os.rawValue
2527
self.init("\(arch)-\(vendor?.rawValue ?? "unknown")-\(os)", normalizing: true)
2628
}
29+
30+
public init(arch: Arch, vendor: Vendor?, os: OS, version: String) {
31+
let os = os.rawValue
32+
self.init("\(arch)-\(vendor?.rawValue ?? "unknown")-\(os)\(version)", normalizing: true)
33+
}
2734
}
2835

2936
extension Triple.Arch {

0 commit comments

Comments
 (0)