aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/vcpkg_System.cpp
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-03-31 17:24:45 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2017-03-31 17:35:38 -0700
commitc84765601bbe49a6ec2e252ec681fe843212230f (patch)
tree0a67514bdbff13d6b142d6657c542b62076555ad /toolsrc/src/vcpkg_System.cpp
parenta6aa410f9fb7855b9cc94bae00d15fea8018250e (diff)
downloadvcpkg-c84765601bbe49a6ec2e252ec681fe843212230f.tar.gz
vcpkg-c84765601bbe49a6ec2e252ec681fe843212230f.zip
Move Environment::get_program_files() to System::get_program_files()
Diffstat (limited to 'toolsrc/src/vcpkg_System.cpp')
-rw-r--r--toolsrc/src/vcpkg_System.cpp34
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;
+ }
}