Skip to content

Commit 0c72892

Browse files
authored
Merge pull request #6805 from compnerd/storage
Host: provide storage for `SDKROOT`
2 parents c8e39b6 + 0e09739 commit 0c72892

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

lldb/source/Host/windows/HostInfoWindowsSwift.cpp

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,17 @@ HostInfoWindows::GetSwiftResourceDir(llvm::Triple triple,
4646
}
4747

4848
llvm::Expected<llvm::StringRef> HostInfoWindows::GetSDKRoot(SDKOptions options) {
49-
std::string buffer;
50-
if (wchar_t *path = _wgetenv(L"SDKROOT"))
51-
if (llvm::convertUTF16ToUTF8String(
52-
llvm::ArrayRef{reinterpret_cast<llvm::UTF16 *>(path), wcslen(path)},
53-
buffer))
54-
return buffer;
49+
static std::once_flag g_flag;
50+
static std::string g_sdkroot;
51+
52+
std::call_once(g_flag, []() {
53+
if (wchar_t *path = _wgetenv(L"SDKROOT"))
54+
llvm::convertUTF16ToUTF8String(
55+
llvm::ArrayRef{reinterpret_cast<llvm::UTF16 *>(path), wcslen(path)},
56+
g_sdkroot);
57+
});
58+
59+
if (!g_sdkroot.empty())
60+
return g_sdkroot;
5561
return llvm::make_error<HostInfoError>("`SDKROOT` is unset");
5662
}

0 commit comments

Comments
 (0)