@@ -200,29 +200,28 @@ extension LLBuildManifestBuilder {
200
200
do {
201
201
// Use the integrated Swift driver to compute the set of frontend
202
202
// jobs needed to build this Swift target.
203
- var driver = try Driver ( args: target. emitCommandLine ( ) , fileSystem: target. fs)
203
+ var commandLine = target. emitCommandLine ( ) ;
204
+ commandLine. append ( " -driver-use-frontend-path " )
205
+ commandLine. append ( buildParameters. toolchain. swiftCompiler. pathString)
206
+ var driver = try Driver ( args: commandLine, fileSystem: target. fs)
204
207
let jobs = try driver. planBuild ( )
205
208
let resolver = try ArgsResolver ( fileSystem: target. fs)
206
209
207
210
for job in jobs {
208
- // Figure out which tool we are using.
209
- // FIXME: This feels like a hack.
210
- let datool : String
211
+ let tool = try resolver. resolve ( . path( job. tool) )
211
212
let isSwiftFrontend : Bool
212
213
switch job. kind {
213
214
case . compile, . mergeModule, . emitModule, . generatePCH,
214
215
. generatePCM, . interpret, . repl, . printTargetInfo,
215
216
. versionRequest, . backend:
216
- datool = buildParameters. toolchain. swiftCompiler. pathString
217
217
isSwiftFrontend = true
218
218
219
219
case . autolinkExtract, . generateDSYM, . help, . link, . verifyDebugInfo:
220
- datool = try resolver. resolve ( . path( job. tool) )
221
220
isSwiftFrontend = false
222
221
}
223
222
224
223
let commandLine = try job. commandLine. map { try resolver. resolve ( $0) }
225
- let arguments = [ datool ] + commandLine
224
+ let arguments = [ tool ] + commandLine
226
225
227
226
let jobInputs = job. inputs. map { $0. resolveToNode ( ) }
228
227
let jobOutputs = job. outputs. map { $0. resolveToNode ( ) }
0 commit comments