diff --git a/Sources/SKSwiftPMWorkspace/SwiftPMBuildSystem.swift b/Sources/SKSwiftPMWorkspace/SwiftPMBuildSystem.swift index e54cbfe4d..c22512334 100644 --- a/Sources/SKSwiftPMWorkspace/SwiftPMBuildSystem.swift +++ b/Sources/SKSwiftPMWorkspace/SwiftPMBuildSystem.swift @@ -102,7 +102,8 @@ public actor SwiftPMBuildSystem { public var projectRoot: TSCAbsolutePath var modulesGraph: ModulesGraph let workspace: Workspace - public let buildParameters: BuildParameters + public let toolsBuildParameters: BuildParameters + public let destinationBuildParameters: BuildParameters let fileSystem: FileSystem private let toolchainRegistry: ToolchainRegistry @@ -200,7 +201,16 @@ public actor SwiftPMBuildSystem { buildConfiguration = .release } - self.buildParameters = try BuildParameters( + self.toolsBuildParameters = try BuildParameters( + destination: .host, + dataPath: location.scratchDirectory.appending(component: toolchain.targetTriple.platformBuildPathComponent), + configuration: buildConfiguration, + toolchain: toolchain, + flags: buildSetup.flags + ) + + self.destinationBuildParameters = try BuildParameters( + destination: .target, dataPath: location.scratchDirectory.appending(component: toolchain.targetTriple.platformBuildPathComponent), configuration: buildConfiguration, toolchain: toolchain, @@ -282,8 +292,8 @@ extension SwiftPMBuildSystem { ) let plan = try BuildPlan( - productsBuildParameters: buildParameters, - toolsBuildParameters: buildParameters, + productsBuildParameters: destinationBuildParameters, + toolsBuildParameters: toolsBuildParameters, graph: modulesGraph, fileSystem: fileSystem, observabilityScope: observabilitySystem.topScope @@ -347,11 +357,12 @@ extension SwiftPMBuildSystem { extension SwiftPMBuildSystem: SKCore.BuildSystem { public var buildPath: TSCAbsolutePath { - return TSCAbsolutePath(buildParameters.buildPath) + return TSCAbsolutePath(destinationBuildParameters.buildPath) } public var indexStorePath: TSCAbsolutePath? { - return buildParameters.indexStoreMode == .off ? nil : TSCAbsolutePath(buildParameters.indexStore) + return destinationBuildParameters.indexStoreMode == .off + ? nil : TSCAbsolutePath(destinationBuildParameters.indexStore) } public var indexDatabasePath: TSCAbsolutePath? { diff --git a/Tests/SKSwiftPMWorkspaceTests/SwiftPMBuildSystemTests.swift b/Tests/SKSwiftPMWorkspaceTests/SwiftPMBuildSystemTests.swift index 69cc4b0f2..3ad0a6a4d 100644 --- a/Tests/SKSwiftPMWorkspaceTests/SwiftPMBuildSystemTests.swift +++ b/Tests/SKSwiftPMWorkspaceTests/SwiftPMBuildSystemTests.swift @@ -142,7 +142,7 @@ final class SwiftPMBuildSystemTests: XCTestCase { ) let aswift = packageRoot.appending(components: "Sources", "lib", "a.swift") - let hostTriple = await swiftpmBuildSystem.buildParameters.triple + let hostTriple = await swiftpmBuildSystem.destinationBuildParameters.triple let build = buildPath(root: packageRoot, platform: hostTriple.platformBuildPathComponent) assertEqual(await swiftpmBuildSystem.buildPath, build) @@ -211,7 +211,7 @@ final class SwiftPMBuildSystemTests: XCTestCase { ) let aswift = packageRoot.appending(components: "Sources", "lib", "a.swift") - let hostTriple = await swiftpmBuildSystem.buildParameters.triple + let hostTriple = await swiftpmBuildSystem.destinationBuildParameters.triple let build = buildPath(root: packageRoot, config: config, platform: hostTriple.platformBuildPathComponent) assertEqual(await swiftpmBuildSystem.buildPath, build) @@ -435,7 +435,7 @@ final class SwiftPMBuildSystemTests: XCTestCase { let acxx = packageRoot.appending(components: "Sources", "lib", "a.cpp") let bcxx = packageRoot.appending(components: "Sources", "lib", "b.cpp") let header = packageRoot.appending(components: "Sources", "lib", "include", "a.h") - let hostTriple = await swiftpmBuildSystem.buildParameters.triple + let hostTriple = await swiftpmBuildSystem.destinationBuildParameters.triple let build = buildPath(root: packageRoot, platform: hostTriple.platformBuildPathComponent) assertEqual(await swiftpmBuildSystem.buildPath, build) @@ -515,7 +515,7 @@ final class SwiftPMBuildSystemTests: XCTestCase { let aswift = packageRoot.appending(components: "Sources", "lib", "a.swift") let arguments = try await swiftpmBuildSystem.buildSettings(for: aswift.asURI, language: .swift)!.compilerArguments assertArgumentsContain("-target", arguments: arguments) // Only one! - let hostTriple = await swiftpmBuildSystem.buildParameters.triple + let hostTriple = await swiftpmBuildSystem.destinationBuildParameters.triple #if os(macOS) assertArgumentsContain( @@ -741,7 +741,7 @@ final class SwiftPMBuildSystemTests: XCTestCase { ) let aswift = packageRoot.appending(components: "Plugins", "MyPlugin", "a.swift") - let hostTriple = await swiftpmBuildSystem.buildParameters.triple + let hostTriple = await swiftpmBuildSystem.destinationBuildParameters.triple let build = buildPath(root: packageRoot, platform: hostTriple.platformBuildPathComponent) assertEqual(await swiftpmBuildSystem.buildPath, build)