aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/vcpkg_Dependencies.cpp
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2016-10-04 14:47:42 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2016-10-04 14:47:42 -0700
commitbf323e8cc6f3edd245e3f5661cab6c8b7f335da9 (patch)
treed7907dd47b9c1a71bba891a66c0829bb1df5319d /toolsrc/src/vcpkg_Dependencies.cpp
parent04539816b5e793afdcff991a28c298f199e709db (diff)
downloadvcpkg-bf323e8cc6f3edd245e3f5661cab6c8b7f335da9.tar.gz
vcpkg-bf323e8cc6f3edd245e3f5661cab6c8b7f335da9.zip
[package_spec]User input gets lowercased; other input is checked
Diffstat (limited to 'toolsrc/src/vcpkg_Dependencies.cpp')
-rw-r--r--toolsrc/src/vcpkg_Dependencies.cpp24
1 files changed, 16 insertions, 8 deletions
diff --git a/toolsrc/src/vcpkg_Dependencies.cpp b/toolsrc/src/vcpkg_Dependencies.cpp
index 9c083a879..fef82940d 100644
--- a/toolsrc/src/vcpkg_Dependencies.cpp
+++ b/toolsrc/src/vcpkg_Dependencies.cpp
@@ -32,17 +32,25 @@ namespace vcpkg { namespace Dependencies
for (const std::string& dep_as_string : dependencies_as_string)
{
- const package_spec current_dep = package_spec::from_name_and_triplet(dep_as_string, spec.target_triplet());
- auto it = status_db.find(current_dep.name(), current_dep.target_triplet());
- if (it != status_db.end() && (*it)->want == want_t::install)
+ const expected<package_spec> expected_dep = package_spec::from_name_and_triplet(dep_as_string, spec.target_triplet());
+ if (auto pdep = expected_dep.get())
{
- continue;
- }
+ const package_spec current_dep = *pdep;
+ auto it = status_db.find(current_dep.name(), current_dep.target_triplet());
+ if (it != status_db.end() && (*it)->want == want_t::install)
+ {
+ continue;
+ }
- graph.add_edge(spec, current_dep);
- if (was_examined.find(current_dep) == was_examined.end())
+ graph.add_edge(spec, current_dep);
+ if (was_examined.find(current_dep) == was_examined.end())
+ {
+ examine_stack.push_back(std::move(current_dep));
+ }
+ }
+ else
{
- examine_stack.push_back(std::move(current_dep));
+ std::abort();
}
}