diff --git a/toolsrc/include/vcpkg_System.h b/toolsrc/include/vcpkg_System.h index 92ceacc88b..777f64bf4f 100644 --- a/toolsrc/include/vcpkg_System.h +++ b/toolsrc/include/vcpkg_System.h @@ -93,4 +93,6 @@ namespace vcpkg::System }; std::wstring get_environmental_variable(const wchar_t* varname) noexcept; + + void set_environmental_variable(const wchar_t* varname, const wchar_t* varvalue) noexcept; } diff --git a/toolsrc/src/vcpkg_Environment.cpp b/toolsrc/src/vcpkg_Environment.cpp index abde735cb5..7722136952 100644 --- a/toolsrc/src/vcpkg_Environment.cpp +++ b/toolsrc/src/vcpkg_Environment.cpp @@ -60,7 +60,7 @@ namespace vcpkg::Environment System::get_environmental_variable(L"PATH"), default_git_installation_dir.native(), default_git_installation_dir_x86.native()); - _wputenv_s(L"PATH", path_buf.c_str()); + System::set_environmental_variable(L"PATH", path_buf.c_str()); static constexpr std::array git_version = {2,0,0}; static const std::wstring version_check_cmd = L"git --version 2>&1"; @@ -76,7 +76,7 @@ namespace vcpkg::Environment System::get_environmental_variable(L"PATH"), default_cmake_installation_dir.native(), default_cmake_installation_dir_x86.native()); - _wputenv_s(L"PATH", path_buf.c_str()); + System::set_environmental_variable(L"PATH", path_buf.c_str()); static constexpr std::array cmake_version = {3,7,2}; static const std::wstring version_check_cmd = L"cmake --version 2>&1"; @@ -88,7 +88,7 @@ namespace vcpkg::Environment { const fs::path downloaded_nuget = paths.downloads / "nuget-3.5.0"; const std::wstring path_buf = Strings::wformat(L"%s;%s", downloaded_nuget.native(), System::get_environmental_variable(L"PATH")); - _wputenv_s(L"PATH", path_buf.c_str()); + System::set_environmental_variable(L"PATH", path_buf.c_str()); static constexpr std::array nuget_version = {3,3,0}; static const std::wstring version_check_cmd = L"nuget 2>&1"; diff --git a/toolsrc/src/vcpkg_System.cpp b/toolsrc/src/vcpkg_System.cpp index 1d9f8e6966..e7349df692 100644 --- a/toolsrc/src/vcpkg_System.cpp +++ b/toolsrc/src/vcpkg_System.cpp @@ -29,7 +29,7 @@ namespace vcpkg::System auto pipe = _wpopen(actual_cmd_line.c_str(), L"r"); if (pipe == nullptr) { - return {1, output}; + return { 1, output }; } while (fgets(buf, 1024, pipe)) { @@ -37,10 +37,10 @@ namespace vcpkg::System } if (!feof(pipe)) { - return {1, output}; + return { 1, output }; } auto ec = _pclose(pipe); - return {ec, output}; + return { ec, output }; } void print(const char* message) @@ -86,6 +86,11 @@ namespace vcpkg::System return ret; } + void set_environmental_variable(const wchar_t* varname, const wchar_t* varvalue) noexcept + { + _wputenv_s(varname, varvalue); + } + void Stopwatch2::start() { static_assert(sizeof(start_time) == sizeof(LARGE_INTEGER), "");