diff options
Diffstat (limited to 'toolsrc/src/vcpkg_System.cpp')
| -rw-r--r-- | toolsrc/src/vcpkg_System.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/toolsrc/src/vcpkg_System.cpp b/toolsrc/src/vcpkg_System.cpp index 767017f76..589dd1924 100644 --- a/toolsrc/src/vcpkg_System.cpp +++ b/toolsrc/src/vcpkg_System.cpp @@ -202,4 +202,38 @@ namespace vcpkg::System ret.pop_back(); // remove extra trailing null byte return ret; } + + static const fs::path& get_ProgramFiles() + { + static const fs::path p = System::get_environmental_variable(L"PROGRAMFILES").value_or_exit(VCPKG_LINE_INFO); + return p; + } + + const fs::path& get_ProgramFiles_32_bit() + { + static const fs::path p = []() -> fs::path + { + auto value = System::get_environmental_variable(L"ProgramFiles(x86)"); + if (auto v = value.get()) + { + return std::move(*v); + } + return get_ProgramFiles(); + }(); + return p; + } + + const fs::path& get_ProgramFiles_platform_bitness() + { + static const fs::path p = []() -> fs::path + { + auto value = System::get_environmental_variable(L"ProgramW6432"); + if (auto v = value.get()) + { + return std::move(*v); + } + return get_ProgramFiles(); + }(); + return p; + } } |
