@@ -17,23 +17,21 @@ import TSCUtility
17
17
18
18
let diagnosticsEngine = DiagnosticsEngine ( handlers: [ Driver . stderrDiagnosticsHandler] )
19
19
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 ? {
26
21
if let id = CommandLine . arguments. firstIndex ( of: flag) {
27
22
let nextId = id. advanced ( by: 1 )
28
23
if nextId < CommandLine . arguments. count {
29
24
return CommandLine . arguments [ nextId]
30
25
}
31
26
}
27
+ if let env = env {
28
+ return ProcessEnv . vars [ env]
29
+ }
32
30
return nil
33
31
}
34
32
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 ) {
37
35
return try VirtualPath ( path: raw) . absolutePath
38
36
}
39
37
return nil
@@ -55,7 +53,11 @@ let verbose = CommandLine.arguments.contains("-v")
55
53
let skipExecution = CommandLine . arguments. contains ( " -n " )
56
54
57
55
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
+ }
59
61
if !localFileSystem. exists ( sdkPath) {
60
62
diagnosticsEngine. emit ( error: " cannot find sdk: \( sdkPath. pathString) " )
61
63
exit ( 1 )
115
117
var args = [ " swiftc " ,
116
118
" -target " , collector. targetTriple,
117
119
tempPath. description,
118
- " -sdk " , sdkPathRaw ]
120
+ " -sdk " , sdkPath . pathString ]
119
121
let mcpFlag = " -module-cache-path "
120
122
// Append module cache path if given by the client
121
123
if let mcp = getArgument ( mcpFlag) {
0 commit comments