@@ -203,19 +203,25 @@ package actor SwiftPMBuildSystem: BuiltInBuildSystem {
203203 throw Error . cannotDetermineHostToolchain
204204 }
205205
206+ var absProjectRoot = try AbsolutePath ( validating: projectRoot. filePath)
206207 let hostSDK = try SwiftSDK . hostSwiftSDK ( AbsolutePath ( validating: destinationToolchainBinDir. filePath) )
207208 let hostSwiftPMToolchain = try UserToolchain ( swiftSDK: hostSDK)
208209
209210 let destinationSDK = try SwiftSDK . deriveTargetSwiftSDK (
210211 hostSwiftSDK: hostSDK,
211212 hostTriple: hostSwiftPMToolchain. targetTriple,
212- customToolsets: options. swiftPMOrDefault. toolsets? . map { try AbsolutePath ( validating: $0) } ?? [ ] ,
213+ customToolsets: options. swiftPMOrDefault. toolsets? . map {
214+ try AbsolutePath ( validating: $0, relativeTo: absProjectRoot)
215+ } ?? [ ] ,
213216 customCompileTriple: options. swiftPMOrDefault. triple. map { try Triple ( $0) } ,
214217 swiftSDKSelector: options. swiftPMOrDefault. swiftSDK,
215218 store: SwiftSDKBundleStore (
216219 swiftSDKsDirectory: localFileSystem. getSharedSwiftSDKsDirectory (
217- explicitDirectory: options. swiftPMOrDefault. swiftSDKsDirectory. map { try AbsolutePath ( validating: $0) }
220+ explicitDirectory: options. swiftPMOrDefault. swiftSDKsDirectory. map {
221+ try AbsolutePath ( validating: $0, relativeTo: absProjectRoot)
222+ }
218223 ) ,
224+ hostToolchainBinDir: hostSwiftPMToolchain. swiftCompilerPath. parentDirectory,
219225 fileSystem: localFileSystem,
220226 observabilityScope: observabilitySystem. topScope. makeChildScope ( description: " SwiftPM Bundle Store " ) ,
221227 outputHandler: { _ in }
@@ -227,20 +233,14 @@ package actor SwiftPMBuildSystem: BuiltInBuildSystem {
227233 let destinationSwiftPMToolchain = try UserToolchain ( swiftSDK: destinationSDK)
228234
229235 var location = try Workspace . Location (
230- forRootPackage: try AbsolutePath ( validating : projectRoot . filePath ) ,
236+ forRootPackage: absProjectRoot ,
231237 fileSystem: localFileSystem
232238 )
239+
233240 if options. backgroundIndexingOrDefault {
234- location. scratchDirectory = try AbsolutePath (
235- validating: projectRoot. appendingPathComponent ( " .build " ) . appendingPathComponent ( " index-build " ) . filePath
236- )
237- } else if let scratchDirectory = options. swiftPMOrDefault. scratchPath,
238- let scratchDirectoryPath = try ? AbsolutePath (
239- validating: scratchDirectory,
240- relativeTo: AbsolutePath ( validating: projectRoot. filePath)
241- )
242- {
243- location. scratchDirectory = scratchDirectoryPath
241+ location. scratchDirectory = absProjectRoot. appending ( components: " .build " , " index-build " )
242+ } else if let scratchDirectory = options. swiftPMOrDefault. scratchPath {
243+ location. scratchDirectory = try AbsolutePath ( validating: scratchDirectory, relativeTo: absProjectRoot)
244244 }
245245
246246 var configuration = WorkspaceConfiguration . default
0 commit comments