Skip to content

Commit c0f529e

Browse files
authored
Delete macOS triple hardcode in getHostTriple (#6569)
On macOS hostTriple hardcoded as `x86_64-apple-macosx` which may not reflect the real host triple. As far as I understand the latest Xcode version are shipped with `-print-target-info` compatible compiler which allows to get rid of this `FIXME`
1 parent ee640b9 commit c0f529e

File tree

4 files changed

+9
-16
lines changed

4 files changed

+9
-16
lines changed

Sources/Basics/Triple.swift

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,6 @@ public struct Triple: Encodable, Equatable, Sendable {
207207
return String(self.tripleString.dropLast(self.osVersion?.count ?? 0)) + version
208208
}
209209

210-
public static let macOS = try! Triple("x86_64-apple-macosx")
211-
212210
/// Determine the versioned host triple using the Swift compiler.
213211
public static func getHostTriple(usingSwiftCompiler swiftCompiler: AbsolutePath) throws -> Triple {
214212
// Call the compiler to get the target info JSON.
@@ -217,13 +215,7 @@ public struct Triple: Encodable, Equatable, Sendable {
217215
let result = try Process.popen(args: swiftCompiler.pathString, "-print-target-info")
218216
compilerOutput = try result.utf8Output().spm_chomp()
219217
} catch {
220-
// FIXME: Remove the macOS special-casing once the latest version of Xcode comes with
221-
// a Swift compiler that supports -print-target-info.
222-
#if os(macOS)
223-
return .macOS
224-
#else
225218
throw InternalError("Failed to get target info (\(error.interpolationDescription))")
226-
#endif
227219
}
228220
// Parse the compiler's JSON output.
229221
let parsedTargetInfo: JSON

Tests/BuildTests/BuildPlanTests.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3078,7 +3078,7 @@ final class BuildPlanTests: XCTestCase {
30783078
observabilityScope: observability.topScope
30793079
))
30803080
}
3081-
let supportingTriples: [Basics.Triple] = [.x86_64Linux, .macOS]
3081+
let supportingTriples: [Basics.Triple] = [.x86_64Linux, .x86_64MacOS]
30823082
for triple in supportingTriples {
30833083
let result = try createResult(for: triple)
30843084
let exe = try result.target(for: "exe").swiftTarget().compileArguments()
@@ -3252,7 +3252,7 @@ final class BuildPlanTests: XCTestCase {
32523252

32533253
XCTAssertThrows(Diagnostics.fatalError) {
32543254
_ = try BuildPlan(
3255-
buildParameters: mockBuildParameters(destinationTriple: .macOS),
3255+
buildParameters: mockBuildParameters(destinationTriple: .x86_64MacOS),
32563256
graph: graph,
32573257
fileSystem: fileSystem,
32583258
observabilityScope: observability.topScope
@@ -3391,7 +3391,7 @@ final class BuildPlanTests: XCTestCase {
33913391
}
33923392

33933393
do {
3394-
let result = try createResult(for: .macOS)
3394+
let result = try createResult(for: .x86_64MacOS)
33953395

33963396
let cbar = try result.target(for: "cbar").clangTarget().basicArguments(isCXX: false)
33973397
XCTAssertMatch(cbar, [.anySequence, "-DCCC=2", "-I\(A.appending(components: "Sources", "cbar", "Sources", "headers"))", "-I\(A.appending(components: "Sources", "cbar", "Sources", "cppheaders"))", "-Icfoo", "-L", "cbar", "-Icxxfoo", "-L", "cxxbar", .end])
@@ -4481,7 +4481,7 @@ final class BuildPlanTests: XCTestCase {
44814481
}
44824482

44834483
func testXCFrameworkBinaryTargets() throws {
4484-
try testXCFrameworkBinaryTargets(platform: "macos", arch: "x86_64", destinationTriple: .macOS)
4484+
try testXCFrameworkBinaryTargets(platform: "macos", arch: "x86_64", destinationTriple: .x86_64MacOS)
44854485

44864486
let arm64Triple = try Basics.Triple("arm64-apple-macosx")
44874487
try testXCFrameworkBinaryTargets(platform: "macos", arch: "arm64", destinationTriple: arm64Triple)
@@ -4559,7 +4559,7 @@ final class BuildPlanTests: XCTestCase {
45594559
}
45604560

45614561
func testArtifactsArchiveBinaryTargets() throws {
4562-
XCTAssertTrue(try testArtifactsArchiveBinaryTargets(artifactTriples: [.macOS], destinationTriple: .macOS))
4562+
XCTAssertTrue(try testArtifactsArchiveBinaryTargets(artifactTriples: [.x86_64MacOS], destinationTriple: .x86_64MacOS))
45634563

45644564
do {
45654565
let triples = try ["arm64-apple-macosx", "x86_64-apple-macosx", "x86_64-unknown-linux-gnu"].map(Basics.Triple.init)
@@ -4568,7 +4568,7 @@ final class BuildPlanTests: XCTestCase {
45684568

45694569
do {
45704570
let triples = try ["x86_64-unknown-linux-gnu"].map(Basics.Triple.init)
4571-
XCTAssertFalse(try testArtifactsArchiveBinaryTargets(artifactTriples: triples, destinationTriple: .macOS))
4571+
XCTAssertFalse(try testArtifactsArchiveBinaryTargets(artifactTriples: triples, destinationTriple: .x86_64MacOS))
45724572
}
45734573
}
45744574

Tests/BuildTests/MockBuildTestHelper.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ func mockBuildParameters(environment: BuildEnvironment) -> BuildParameters {
9595
let triple: Basics.Triple
9696
switch environment.platform {
9797
case .macOS:
98-
triple = Triple.macOS
98+
triple = Triple.x86_64MacOS
9999
case .linux:
100100
triple = Triple.arm64Linux
101101
case .android:

Tests/WorkspaceTests/WorkspaceTests.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9130,7 +9130,8 @@ final class WorkspaceTests: XCTestCase {
91309130

91319131
let hostToolchain = try UserToolchain(destination: .hostDestination())
91329132
let androidTriple = try Triple("x86_64-unknown-linux-android")
9133-
let notHostTriple = hostToolchain.triple == androidTriple ? .macOS : androidTriple
9133+
let macTriple = try Triple("arm64-apple-macosx")
9134+
let notHostTriple = hostToolchain.triple == androidTriple ? macTriple : androidTriple
91349135

91359136
let ari = """
91369137
{

0 commit comments

Comments
 (0)