aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src
diff options
context:
space:
mode:
authorDon <don.j.olmstead@gmail.com>2019-03-28 14:34:26 -0700
committerPhil Christensen <philc@microsoft.com>2019-03-28 14:34:26 -0700
commitd71ad4800bd5023f1452200af6c29832673892dc (patch)
treef4ee58b1a5733b7d2868305cf60f7d1bae3f468e /toolsrc/src
parent78a8de6cf468dc3d3301b26fedae7969bb366a75 (diff)
downloadvcpkg-d71ad4800bd5023f1452200af6c29832673892dc.tar.gz
vcpkg-d71ad4800bd5023f1452200af6c29832673892dc.zip
Allow additional environment variables to be set in a clean environment (#5650)
* Allow additional environment variables to be set in a clean environment * Add documentation for VCPKG_KEEP_ENV_VARS
Diffstat (limited to 'toolsrc/src')
-rw-r--r--toolsrc/src/vcpkg/base/system.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/toolsrc/src/vcpkg/base/system.cpp b/toolsrc/src/vcpkg/base/system.cpp
index 90b9c34b3..6ddf17496 100644
--- a/toolsrc/src/vcpkg/base/system.cpp
+++ b/toolsrc/src/vcpkg/base/system.cpp
@@ -178,6 +178,19 @@ namespace vcpkg::System
L"ANDROID_NDK_HOME",
};
+ const Optional<std::string> keep_vars = System::get_environment_variable("VCPKG_KEEP_ENV_VARS");
+ const auto k = keep_vars.get();
+
+ if (k && !k->empty())
+ {
+ auto vars = Strings::split(*k, ";");
+
+ for (auto&& var : vars)
+ {
+ env_wstrings.push_back(Strings::to_utf16(var.c_str()));
+ }
+ }
+
std::wstring env_cstr;
for (auto&& env_wstring : env_wstrings)