@@ -17,23 +17,21 @@ import TSCUtility
1717
1818let 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")
5553let skipExecution = CommandLine . arguments. contains ( " -n " )
5654
5755do {
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 )
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