Skip to content

Commit b0bb8bf

Browse files
Include FreeBSD version number in derived target triple
Target triples for the FreeBSD platform must include the FreeBSD version number at the end of the triple. If we use a derived target triple, then the version number, resulting in the SDK not being usable.
1 parent ff7fa0c commit b0bb8bf

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-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: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ extension Triple {
2626
let os = os.rawValue
2727
self.init("\(arch)-\(vendor?.rawValue ?? "unknown")-\(os)", normalizing: true)
2828
}
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+
}
2934
}
3035

3136
extension Triple.Arch {

0 commit comments

Comments
 (0)