@@ -203,18 +203,23 @@ 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 ) ,
219224 fileSystem: localFileSystem,
220225 observabilityScope: observabilitySystem. topScope. makeChildScope ( description: " SwiftPM Bundle Store " ) ,
@@ -227,20 +232,14 @@ package actor SwiftPMBuildSystem: BuiltInBuildSystem {
227232 let destinationSwiftPMToolchain = try UserToolchain ( swiftSDK: destinationSDK)
228233
229234 var location = try Workspace . Location (
230- forRootPackage: try AbsolutePath ( validating : projectRoot . filePath ) ,
235+ forRootPackage: absProjectRoot ,
231236 fileSystem: localFileSystem
232237 )
238+
233239 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
240+ location. scratchDirectory = absProjectRoot. appending ( components: " .build " , " index-build " )
241+ } else if let scratchDirectory = options. swiftPMOrDefault. scratchPath {
242+ location. scratchDirectory = try AbsolutePath ( validating: scratchDirectory, relativeTo: absProjectRoot)
244243 }
245244
246245 var configuration = WorkspaceConfiguration . default
0 commit comments