From c84765601bbe49a6ec2e252ec681fe843212230f Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Fri, 31 Mar 2017 17:24:45 -0700 Subject: Move Environment::get_program_files() to System::get_program_files() --- toolsrc/src/vcpkg_System.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'toolsrc/src/vcpkg_System.cpp') 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; + } } -- cgit v1.2.3