diff --git a/Sources/GeneratorCLI/GeneratorCLI.swift b/Sources/GeneratorCLI/GeneratorCLI.swift index 5394b10..c4b4fd9 100644 --- a/Sources/GeneratorCLI/GeneratorCLI.swift +++ b/Sources/GeneratorCLI/GeneratorCLI.swift @@ -345,12 +345,12 @@ extension GeneratorCLI { ) var freeBSDVersion: String - func deriveTargetTriple(hostTriples: [Triple]) throws -> Triple { + func deriveTargetTriple(hostTriples: [Triple], freeBSDVersion: String) throws -> Triple { if let target = generatorOptions.target, target.os == .freeBSD { return target } if let arch = generatorOptions.targetArch { - let target = Triple(arch: arch, vendor: nil, os: .freeBSD) + let target = Triple(arch: arch, vendor: nil, os: .freeBSD, version: freeBSDVersion) appLogger.warning( """ Using `--target-arch \(arch)` defaults to `\(target.triple)`. \ @@ -375,7 +375,7 @@ extension GeneratorCLI { } let hostTriples = try self.generatorOptions.deriveHostTriples() - let targetTriple = try self.deriveTargetTriple(hostTriples: hostTriples) + let targetTriple = try self.deriveTargetTriple(hostTriples: hostTriples, freeBSDVersion: self.freeBSDVersion) let sourceSwiftToolchain: FilePath? if let fromSwiftToolchain { diff --git a/Sources/SwiftSDKGenerator/PlatformModels/Triple.swift b/Sources/SwiftSDKGenerator/PlatformModels/Triple.swift index 55dec55..a88a09e 100644 --- a/Sources/SwiftSDKGenerator/PlatformModels/Triple.swift +++ b/Sources/SwiftSDKGenerator/PlatformModels/Triple.swift @@ -18,12 +18,19 @@ extension Triple: @unchecked Sendable {} extension Triple { public init(arch: Arch, vendor: Vendor?, os: OS, environment: Environment) { + let os = os.rawValue self.init("\(arch)-\(vendor?.rawValue ?? "unknown")-\(os)-\(environment)", normalizing: true) } public init(arch: Arch, vendor: Vendor?, os: OS) { + let os = os.rawValue self.init("\(arch)-\(vendor?.rawValue ?? "unknown")-\(os)", normalizing: true) } + + public init(arch: Arch, vendor: Vendor?, os: OS, version: String) { + let os = os.rawValue + self.init("\(arch)-\(vendor?.rawValue ?? "unknown")-\(os)\(version)", normalizing: true) + } } extension Triple.Arch {