Skip to content

Commit 9c8b37c

Browse files
committed
Use -print-target-info instead of a hardcoded triple
1 parent 3e07f3a commit 9c8b37c

File tree

6 files changed

+16
-10
lines changed

6 files changed

+16
-10
lines changed

Sources/Build/XCFrameworkInfo.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ See http://swift.org/CONTRIBUTORS.txt for Swift project authors
99
*/
1010

1111
import TSCBasic
12+
import TSCUtility
1213
import PackageModel
1314
import SPMBuildCore
1415
import Foundation

Sources/PackageLoading/ManifestLoader.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,7 @@ public final class ManifestLoader: ManifestLoaderProtocol {
592592
}
593593
}
594594

595+
private static var _hostTriple: Triple?
595596
private static var _packageDescriptionMinimumDeploymentTarget: String?
596597

597598
/// Parse the manifest at the given path to JSON.
@@ -660,11 +661,15 @@ public final class ManifestLoader: ManifestLoaderProtocol {
660661

661662
// Use the same minimum deployment target as the PackageDescription library (with a fallback of 10.15).
662663
#if os(macOS)
664+
if Self._hostTriple == nil {
665+
Self._hostTriple = Triple.getHostTriple(usingSwiftCompiler: resources.swiftCompiler)
666+
}
667+
let triple = Self._hostTriple!
663668
if Self._packageDescriptionMinimumDeploymentTarget == nil {
664669
Self._packageDescriptionMinimumDeploymentTarget = (try MinimumDeploymentTarget.computeMinimumDeploymentTarget(of: macOSPackageDescriptionPath))?.versionString ?? "10.15"
665670
}
666671
let version = Self._packageDescriptionMinimumDeploymentTarget!
667-
cmd += ["-target", "x86_64-apple-macosx\(version)"]
672+
cmd += ["-target", "\(triple.tripleString(forPlatformVersion: version))"]
668673
#endif
669674

670675
cmd += compilerFlags

Sources/SPMBuildCore/CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ add_library(SPMBuildCore
1111
BuildSystem.swift
1212
BuiltTestProduct.swift
1313
Sanitizers.swift
14-
Toolchain.swift
15-
Triple.swift)
14+
Toolchain.swift)
1615
# NOTE(compnerd) workaround for CMake not setting up include flags yet
1716
set_target_properties(SPMBuildCore PROPERTIES
1817
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY})

Tests/BuildTests/BuildPlanTests.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ final class BuildPlanTests: XCTestCase {
6262
toolchain: SPMBuildCore.Toolchain = MockToolchain(),
6363
flags: BuildFlags = BuildFlags(),
6464
shouldLinkStaticSwiftStdlib: Bool = false,
65-
destinationTriple: SPMBuildCore.Triple = hostTriple,
65+
destinationTriple: TSCUtility.Triple = hostTriple,
6666
indexStoreMode: BuildParameters.IndexStoreMode = .off,
6767
useExplicitModuleBuild: Bool = false
6868
) -> BuildParameters {
@@ -81,7 +81,7 @@ final class BuildPlanTests: XCTestCase {
8181
}
8282

8383
func mockBuildParameters(environment: BuildEnvironment) -> BuildParameters {
84-
let triple: SPMBuildCore.Triple
84+
let triple: TSCUtility.Triple
8585
switch environment.platform {
8686
case .macOS:
8787
triple = Triple.macOS
@@ -1869,7 +1869,7 @@ final class BuildPlanTests: XCTestCase {
18691869
)
18701870
XCTAssertNoDiagnostics(diagnostics)
18711871

1872-
func createResult(for dest: SPMBuildCore.Triple) throws -> BuildPlanResult {
1872+
func createResult(for dest: TSCUtility.Triple) throws -> BuildPlanResult {
18731873
return BuildPlanResult(plan: try BuildPlan(
18741874
buildParameters: mockBuildParameters(destinationTriple: dest),
18751875
graph: graph, diagnostics: diagnostics,
@@ -2313,7 +2313,7 @@ final class BuildPlanTests: XCTestCase {
23132313
])
23142314
}
23152315

2316-
func testBinaryTargets(platform: String, arch: String, destinationTriple: SPMBuildCore.Triple)
2316+
func testBinaryTargets(platform: String, arch: String, destinationTriple: TSCUtility.Triple)
23172317
throws {
23182318
let fs = InMemoryFileSystem(emptyFiles:
23192319
"/Pkg/Sources/exe/main.swift",
@@ -2458,9 +2458,9 @@ final class BuildPlanTests: XCTestCase {
24582458

24592459
func testBinaryTargets() throws {
24602460
try testBinaryTargets(platform: "macos", arch: "x86_64", destinationTriple: .macOS)
2461-
let arm64Triple = try SPMBuildCore.Triple("arm64-apple-macosx")
2461+
let arm64Triple = try TSCUtility.Triple("arm64-apple-macosx")
24622462
try testBinaryTargets(platform: "macos", arch: "arm64", destinationTriple: arm64Triple)
2463-
let arm64eTriple = try SPMBuildCore.Triple("arm64e-apple-macosx")
2463+
let arm64eTriple = try TSCUtility.Triple("arm64e-apple-macosx")
24642464
try testBinaryTargets(platform: "macos", arch: "arm64e", destinationTriple: arm64eTriple)
24652465
}
24662466

@@ -2594,7 +2594,7 @@ fileprivate extension TargetBuildDescription {
25942594
}
25952595
}
25962596

2597-
fileprivate extension SPMBuildCore.Triple {
2597+
fileprivate extension TSCUtility.Triple {
25982598
static let x86_64Linux = try! Triple("x86_64-unknown-linux-gnu")
25992599
static let arm64Linux = try! Triple("aarch64-unknown-linux-gnu")
26002600
static let arm64Android = try! Triple("aarch64-unknown-linux-android")

swift-tools-support-core/Sources/TSCUtility/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ add_library(TSCUtility
3232
SimplePersistence.swift
3333
StringExtensions.swift
3434
StringMangling.swift
35+
Triple.swift
3536
URL.swift
3637
Verbosity.swift
3738
Version.swift

0 commit comments

Comments
 (0)