@@ -321,7 +321,10 @@ public struct Driver {
321321 diagnosticsEngine: DiagnosticsEngine = DiagnosticsEngine ( handlers: [ Driver . stderrDiagnosticsHandler] ) ,
322322 fileSystem: FileSystem = localFileSystem,
323323 executor: DriverExecutor ,
324+ // FIXME: Duplication with externalBuildArtifacts and externalTargetModulePathMap
325+ // is a temporary backwards-compatibility shim to help transition SwiftPM to the new API
324326 externalBuildArtifacts: ExternalBuildArtifacts ? = nil ,
327+ externalTargetModulePathMap: ExternalTargetModulePathMap ? = nil ,
325328 interModuleDependencyOracle: InterModuleDependencyOracle ? = nil
326329 ) throws {
327330 self . env = env
@@ -330,7 +333,11 @@ public struct Driver {
330333 self . diagnosticEngine = diagnosticsEngine
331334 self . executor = executor
332335
333- self . externalBuildArtifacts = externalBuildArtifacts
336+ if let externalArtifacts = externalBuildArtifacts {
337+ self . externalBuildArtifacts = externalArtifacts
338+ } else if let externalTargetPaths = externalTargetModulePathMap {
339+ self . externalBuildArtifacts = ( externalTargetPaths, [ : ] )
340+ }
334341
335342 if case . subcommand = try Self . invocationRunMode ( forArgs: args) . mode {
336343 throw Error . subcommandPassedToDriver
@@ -399,8 +406,8 @@ public struct Driver {
399406 }
400407 }
401408 }
402-
403- do {
409+
410+ do {
404411 let outputFileMap : OutputFileMap ?
405412 // Initialize an empty output file map, which will be populated when we start creating jobs.
406413 if let outputFileMapArg = parsedOptions. getLastArgument ( . outputFileMap) ? . asSingle {
@@ -410,12 +417,14 @@ public struct Driver {
410417 } catch {
411418 throw Error . unableToLoadOutputFileMap ( outputFileMapArg)
412419 }
420+ } else {
421+ outputFileMap = nil
422+ }
413423
414- if let workingDirectory = self . workingDirectory {
415- self . outputFileMap = outputFileMap? . resolveRelativePaths ( relativeTo: workingDirectory)
416- } else {
417- self . outputFileMap = outputFileMap
418- }
424+ if let workingDirectory = self . workingDirectory {
425+ self . outputFileMap = outputFileMap? . resolveRelativePaths ( relativeTo: workingDirectory)
426+ } else {
427+ self . outputFileMap = outputFileMap
419428 }
420429 }
421430
0 commit comments