diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2018-03-10 14:19:07 -0800 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2018-03-10 14:19:51 -0800 |
| commit | 6670b87c18c544bbc9fa167f583b27dc52bce3d9 (patch) | |
| tree | 33de58b013854ca17af97e12de5d4a38381ee108 /toolsrc/src | |
| parent | b7daa881f5941f7b4aaf7d8ad667b5a761c9b4cc (diff) | |
| download | vcpkg-6670b87c18c544bbc9fa167f583b27dc52bce3d9.tar.gz vcpkg-6670b87c18c544bbc9fa167f583b27dc52bce3d9.zip | |
[vcpkg] Add VCPKG_DEFAULT_VS_PATH environment variable
Diffstat (limited to 'toolsrc/src')
| -rw-r--r-- | toolsrc/src/vcpkg.cpp | 4 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg/vcpkgpaths.cpp | 9 |
2 files changed, 10 insertions, 3 deletions
diff --git a/toolsrc/src/vcpkg.cpp b/toolsrc/src/vcpkg.cpp index ef68e6f72..d9b915367 100644 --- a/toolsrc/src/vcpkg.cpp +++ b/toolsrc/src/vcpkg.cpp @@ -94,7 +94,9 @@ static void inner(const VcpkgCmdArguments& args) Checks::check_exit(VCPKG_LINE_INFO, !vcpkg_root_dir.empty(), "Error: Could not detect vcpkg-root."); - const Expected<VcpkgPaths> expected_paths = VcpkgPaths::create(vcpkg_root_dir); + auto default_vs_path = System::get_environment_variable("VCPKG_DEFAULT_VS_PATH").value_or(""); + + const Expected<VcpkgPaths> expected_paths = VcpkgPaths::create(vcpkg_root_dir, default_vs_path); Checks::check_exit(VCPKG_LINE_INFO, !expected_paths.error(), "Error: Invalid vcpkg root directory %s: %s", diff --git a/toolsrc/src/vcpkg/vcpkgpaths.cpp b/toolsrc/src/vcpkg/vcpkgpaths.cpp index e62ef8662..02bc5f041 100644 --- a/toolsrc/src/vcpkg/vcpkgpaths.cpp +++ b/toolsrc/src/vcpkg/vcpkgpaths.cpp @@ -293,7 +293,7 @@ namespace vcpkg return fetch_tool(paths.scripts, "installerbase", TOOL_DATA); } - Expected<VcpkgPaths> VcpkgPaths::create(const fs::path& vcpkg_root_dir) + Expected<VcpkgPaths> VcpkgPaths::create(const fs::path& vcpkg_root_dir, const std::string& default_vs_path) { std::error_code ec; const fs::path canonical_vcpkg_root_dir = fs::stdfs::canonical(vcpkg_root_dir, ec); @@ -304,6 +304,7 @@ namespace vcpkg VcpkgPaths paths; paths.root = canonical_vcpkg_root_dir; + paths.default_vs_path = default_vs_path; if (paths.root.empty()) { @@ -643,7 +644,11 @@ namespace vcpkg std::vector<const Toolset*> candidates = Util::element_pointers(vs_toolsets); const auto tsv = prebuildinfo.platform_toolset.get(); - const auto vsp = prebuildinfo.visual_studio_path.get(); + auto vsp = prebuildinfo.visual_studio_path.get(); + if (!vsp && !default_vs_path.empty()) + { + vsp = &default_vs_path; + } if (tsv && vsp) { |
