Skip to content

Commit 89cc838

Browse files
committed
Remove unnecessarily hard-coded executable suffix
... and also clarify about that in documentation.
1 parent 2f65431 commit 89cc838

File tree

3 files changed

+20
-24
lines changed

3 files changed

+20
-24
lines changed

Sources/SwiftDriver/Jobs/WindowsToolchain+LinkerSupport.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ extension WindowsToolchain {
4444
let librarian: String
4545
switch parsedOptions.getLastArgument(.useLd)?.asSingle {
4646
case .none:
47-
librarian = lto == nil ? "link.exe" : "lld-link.exe"
47+
librarian = lto == nil ? "link" : "lld-link"
4848
case .some("lld"), .some("lld.exe"), .some("lld-link"), .some("lld-link.exe"):
49-
librarian = "lld-link.exe"
49+
librarian = "lld-link"
5050
case let .some(linker):
5151
librarian = linker
5252
}

Sources/SwiftDriver/Toolchains/Toolchain.swift

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -191,11 +191,7 @@ extension Toolchain {
191191

192192
/// - Returns: String in the form of: `SWIFT_DRIVER_TOOLNAME_EXEC`
193193
private func envVarName(for toolName: String) -> String {
194-
var lookupName = toolName
195-
#if os(Windows)
196-
lookupName = lookupName.replacingOccurrences(of: ".exe", with: "")
197-
#endif
198-
lookupName = lookupName.replacingOccurrences(of: "-", with: "_").uppercased()
194+
let lookupName = toolName.replacingOccurrences(of: "-", with: "_").uppercased()
199195
return "SWIFT_DRIVER_\(lookupName)_EXEC"
200196
}
201197

@@ -209,9 +205,9 @@ extension Toolchain {
209205

210206
/// Looks for the executable in the `SWIFT_DRIVER_TOOLNAME_EXEC` environment variable, if found nothing,
211207
/// looks in the `executableDir`, `xcrunFind` or in the `searchPaths`.
212-
/// - Parameter executable: executable to look for [i.e. `swift`].
208+
/// - Parameter executable: executable to look for [i.e. `swift`]. Executable suffix (eg. `.exe`) should be omitted.
213209
func lookup(executable: String) throws -> AbsolutePath {
214-
if let overrideString = envVar(forExecutable: executableName(executable)) {
210+
if let overrideString = envVar(forExecutable: executable) {
215211
return try AbsolutePath(validating: overrideString)
216212
} else if let toolDir = toolDirectory,
217213
let path = lookupExecutablePath(filename: executableName(executable), searchPaths: [toolDir]) {
@@ -221,7 +217,7 @@ extension Toolchain {
221217
return path
222218
} else if let path = try? xcrunFind(executable: executableName(executable)) {
223219
return path
224-
} else if !["swift-frontend", "swift", "swift-frontend.exe", "swift.exe"].contains(executable),
220+
} else if !["swift-frontend", "swift"].contains(executable),
225221
let parentDirectory = try? getToolPath(.swiftCompiler).parentDirectory,
226222
parentDirectory != executableDir,
227223
let path = lookupExecutablePath(filename: executableName(executable), searchPaths: [parentDirectory]) {
@@ -230,14 +226,14 @@ extension Toolchain {
230226
return path
231227
} else if let path = lookupExecutablePath(filename: executableName(executable), searchPaths: searchPaths) {
232228
return path
233-
} else if executable == executableName("swift-frontend") {
229+
} else if executable == "swift-frontend" {
234230
// Temporary shim: fall back to looking for "swift" before failing.
235-
return try lookup(executable: executableName("swift"))
231+
return try lookup(executable: "swift")
236232
} else if fallbackToExecutableDefaultPath {
237233
if self is WindowsToolchain {
238234
return try getToolPath(.swiftCompiler)
239235
.parentDirectory
240-
.appending(component: executable)
236+
.appending(component: executableName(executable))
241237
} else {
242238
return AbsolutePath("/usr/bin/" + executable)
243239
}

Sources/SwiftDriver/Toolchains/WindowsToolchain.swift

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -69,27 +69,27 @@ extension WindowsToolchain.ToolchainValidationError {
6969
private func lookupToolPath(_ tool: Tool) throws -> AbsolutePath {
7070
switch tool {
7171
case .swiftAPIDigester:
72-
return try lookup(executable: "swift-api-digester.exe")
72+
return try lookup(executable: "swift-api-digester")
7373
case .swiftCompiler:
74-
return try lookup(executable: "swift-frontend.exe")
74+
return try lookup(executable: "swift-frontend")
7575
case .staticLinker:
76-
return try lookup(executable: "lld-link.exe")
76+
return try lookup(executable: "lld-link")
7777
case .dynamicLinker:
78-
return try lookup(executable: "clang.exe")
78+
return try lookup(executable: "clang")
7979
case .clang:
80-
return try lookup(executable: "clang.exe")
80+
return try lookup(executable: "clang")
8181
case .clangxx:
82-
return try lookup(executable: "clang++.exe")
82+
return try lookup(executable: "clang++")
8383
case .swiftAutolinkExtract:
84-
return try lookup(executable: "swift-autolink-extract.exe")
84+
return try lookup(executable: "swift-autolink-extract")
8585
case .lldb:
86-
return try lookup(executable: "lldb.exe")
86+
return try lookup(executable: "lldb")
8787
case .dsymutil:
88-
return try lookup(executable: "llvm-dsymutil.exe")
88+
return try lookup(executable: "llvm-dsymutil")
8989
case .dwarfdump:
90-
return try lookup(executable: "llvm-dwarfdump.exe")
90+
return try lookup(executable: "llvm-dwarfdump")
9191
case .swiftHelp:
92-
return try lookup(executable: "swift-help.exe")
92+
return try lookup(executable: "swift-help")
9393
}
9494
}
9595

0 commit comments

Comments
 (0)