From ac8b9a13e40082d24afa1fc06757d25136a35b20 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Tue, 6 Mar 2018 09:55:22 -0800 Subject: [vcpkg] Enable qualifiers to use ! for inversion --- toolsrc/src/vcpkg/sourceparagraph.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'toolsrc/src') diff --git a/toolsrc/src/vcpkg/sourceparagraph.cpp b/toolsrc/src/vcpkg/sourceparagraph.cpp index 2a9480538..0b4baf189 100644 --- a/toolsrc/src/vcpkg/sourceparagraph.cpp +++ b/toolsrc/src/vcpkg/sourceparagraph.cpp @@ -202,7 +202,15 @@ namespace vcpkg std::vector ret; for (auto&& dep : deps) { - if (dep.qualifier.empty() || t.canonical_name().find(dep.qualifier) != std::string::npos) + auto qualifiers = Strings::split(dep.qualifier, "&"); + if (std::all_of(qualifiers.begin(), qualifiers.end(), [&](const std::string& qualifier) { + if (qualifier.empty()) return true; + if (qualifier[0] == '!') + { + return t.canonical_name().find(qualifier.substr(1)) == std::string::npos; + } + return t.canonical_name().find(qualifier) != std::string::npos; + })) { ret.emplace_back(dep.name()); } -- cgit v1.2.3