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
This commit is contained in:
Don 2019-03-28 14:34:26 -07:00 committed by Phil Christensen
parent 78a8de6cf4
commit d71ad4800b
2 changed files with 20 additions and 0 deletions

View File

@ -40,3 +40,10 @@ This environment variable can be set to a triplet name which will be used for un
#### VCPKG_FORCE_SYSTEM_BINARIES
This environment variable, if set, suppresses the downloading of CMake and Ninja and forces the use of the system binaries.
### VCPKG_KEEP_ENV_VARS
This environment variable can be set to a list of environment variables, separated by `;`, which will be propagated to
the build environment.
Example: `FOO_SDK_DIR;BAR_SDK_DIR`

View File

@ -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)