Skip to content

Commit 583b1cd

Browse files
committed
PrebuiltModuleGen: allow passing down SDK path via -sdk
1 parent 971d682 commit 583b1cd

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

Sources/swift-build-sdk-interfaces/main.swift

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,21 @@ import TSCUtility
1717

1818
let diagnosticsEngine = DiagnosticsEngine(handlers: [Driver.stderrDiagnosticsHandler])
1919

20-
guard let sdkPathRaw = ProcessEnv.vars["SDKROOT"] else {
21-
diagnosticsEngine.emit(.error("need to set SDKROOT"))
22-
exit(1)
23-
}
24-
25-
func getArgument(_ flag: String) -> String? {
20+
func getArgument(_ flag: String, _ env: String? = nil) -> String? {
2621
if let id = CommandLine.arguments.firstIndex(of: flag) {
2722
let nextId = id.advanced(by: 1)
2823
if nextId < CommandLine.arguments.count {
2924
return CommandLine.arguments[nextId]
3025
}
3126
}
27+
if let env = env {
28+
return ProcessEnv.vars[env]
29+
}
3230
return nil
3331
}
3432

35-
func getArgumentAsPath(_ flag: String) throws -> AbsolutePath? {
36-
if let raw = getArgument(flag) {
33+
func getArgumentAsPath(_ flag: String, _ env: String? = nil) throws -> AbsolutePath? {
34+
if let raw = getArgument(flag, env) {
3735
return try VirtualPath(path: raw).absolutePath
3836
}
3937
return nil
@@ -55,7 +53,11 @@ let verbose = CommandLine.arguments.contains("-v")
5553
let skipExecution = CommandLine.arguments.contains("-n")
5654

5755
do {
58-
let sdkPath = try VirtualPath(path: sdkPathRaw).absolutePath!
56+
let sdkPath = try getArgumentAsPath("-sdk", "SDKROOT")
57+
guard let sdkPath = sdkPath else {
58+
diagnosticsEngine.emit(.error("need to set SDKROOT"))
59+
exit(1)
60+
}
5961
if !localFileSystem.exists(sdkPath) {
6062
diagnosticsEngine.emit(error: "cannot find sdk: \(sdkPath.pathString)")
6163
exit(1)
@@ -115,7 +117,7 @@ do {
115117
var args = ["swiftc",
116118
"-target", collector.targetTriple,
117119
tempPath.description,
118-
"-sdk", sdkPathRaw]
120+
"-sdk", sdkPath.pathString]
119121
let mcpFlag = "-module-cache-path"
120122
// Append module cache path if given by the client
121123
if let mcp = getArgument(mcpFlag) {

0 commit comments

Comments
 (0)