aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2017-10-15 23:24:34 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2017-10-15 23:24:34 -0700
commitb486be5eb3b12c0a6fa0a81992768340317ec5c2 (patch)
tree83f1b11ad05c83be3b7f5036989f6fdec911442e /toolsrc/src
parent6942c00a453c9fa4f9fbde7ba821974110b43d57 (diff)
downloadvcpkg-b486be5eb3b12c0a6fa0a81992768340317ec5c2.tar.gz
vcpkg-b486be5eb3b12c0a6fa0a81992768340317ec5c2.zip
Introduce VcpkgPaths::get_available_triplets()
Diffstat (limited to 'toolsrc/src')
-rw-r--r--toolsrc/src/vcpkg/help.cpp4
-rw-r--r--toolsrc/src/vcpkg/vcpkgpaths.cpp25
2 files changed, 18 insertions, 11 deletions
diff --git a/toolsrc/src/vcpkg/help.cpp b/toolsrc/src/vcpkg/help.cpp
index 7867f71d2..2a0578211 100644
--- a/toolsrc/src/vcpkg/help.cpp
+++ b/toolsrc/src/vcpkg/help.cpp
@@ -16,9 +16,9 @@ namespace vcpkg::Help
void help_topic_valid_triplet(const VcpkgPaths& paths)
{
System::println("Available architecture triplets:");
- for (auto&& path : paths.get_filesystem().get_files_non_recursive(paths.triplets))
+ for (auto&& triplet : paths.get_available_triplets())
{
- System::println(" %s", path.stem().filename().string());
+ System::println(" %s", triplet);
}
}
diff --git a/toolsrc/src/vcpkg/vcpkgpaths.cpp b/toolsrc/src/vcpkg/vcpkgpaths.cpp
index 07ce5c961..c57077eaa 100644
--- a/toolsrc/src/vcpkg/vcpkgpaths.cpp
+++ b/toolsrc/src/vcpkg/vcpkgpaths.cpp
@@ -255,18 +255,25 @@ namespace vcpkg
return this->vcpkg_dir_info / (pgh.fullstem() + ".list");
}
- bool VcpkgPaths::is_valid_triplet(const Triplet& t) const
+ const std::vector<std::string>& VcpkgPaths::get_available_triplets() const
{
- for (auto&& path : get_filesystem().get_files_non_recursive(this->triplets))
- {
- const std::string triplet_file_name = path.stem().generic_u8string();
- if (t.canonical_name() == triplet_file_name) // TODO: fuzzy compare
+ return this->available_triplets.get_lazy([this]() -> std::vector<std::string> {
+
+ std::vector<std::string> output;
+ for (auto&& path : this->get_filesystem().get_files_non_recursive(this->triplets))
{
- // t.value = triplet_file_name; // NOTE: uncomment when implementing fuzzy compare
- return true;
+ output.push_back(path.stem().filename().string());
}
- }
- return false;
+
+ return output;
+ });
+ }
+
+ bool VcpkgPaths::is_valid_triplet(const Triplet& t) const
+ {
+ auto it = Util::find_if(this->get_available_triplets(),
+ [&](auto&& available_triplet) { return t.canonical_name() == available_triplet; });
+ return it != this->get_available_triplets().cend();
}
const fs::path& VcpkgPaths::get_cmake_exe() const