aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-08-21 20:06:47 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-08-21 20:06:47 -0700
commitd708484077ef891c5a69e4d9211613dbcfacb91e (patch)
treed12145c097ed9f8ca3cfe30d8da4083b27ad41b0 /toolsrc/include
parent27be8b5c7489ea52156669f8e556ad3db1fd11d1 (diff)
downloadvcpkg-d708484077ef891c5a69e4d9211613dbcfacb91e.tar.gz
vcpkg-d708484077ef891c5a69e4d9211613dbcfacb91e.zip
[vcpkg] Feature packages now include user requested packages even if they are already installed.
Diffstat (limited to 'toolsrc/include')
-rw-r--r--toolsrc/include/vcpkg_Dependencies.h12
-rw-r--r--toolsrc/include/vcpkg_Util.h10
2 files changed, 17 insertions, 5 deletions
diff --git a/toolsrc/include/vcpkg_Dependencies.h b/toolsrc/include/vcpkg_Dependencies.h
index e6c3c55c9..bfb452596 100644
--- a/toolsrc/include/vcpkg_Dependencies.h
+++ b/toolsrc/include/vcpkg_Dependencies.h
@@ -3,6 +3,7 @@
#include "StatusParagraphs.h"
#include "VcpkgPaths.h"
#include "vcpkg_Graphs.h"
+#include "vcpkg_Util.h"
#include "vcpkg_optional.h"
#include <vector>
@@ -38,20 +39,21 @@ namespace vcpkg::Dependencies
ALREADY_INSTALLED
};
- struct InstallPlanAction
+ struct InstallPlanAction : Util::MoveOnlyBase
{
static bool compare_by_name(const InstallPlanAction* left, const InstallPlanAction* right);
InstallPlanAction();
+
+ InstallPlanAction::InstallPlanAction(const PackageSpec& spec,
+ const std::unordered_set<std::string>& features,
+ const RequestType& request_type);
InstallPlanAction(const PackageSpec& spec, const AnyParagraph& any_paragraph, const RequestType& request_type);
InstallPlanAction(const PackageSpec& spec,
const SourceControlFile& any_paragraph,
const std::unordered_set<std::string>& features,
const RequestType& request_type);
- InstallPlanAction(const InstallPlanAction&) = delete;
- InstallPlanAction(InstallPlanAction&&) = default;
- InstallPlanAction& operator=(const InstallPlanAction&) = delete;
- InstallPlanAction& operator=(InstallPlanAction&&) = default;
+
std::string displayname() const;
PackageSpec spec;
diff --git a/toolsrc/include/vcpkg_Util.h b/toolsrc/include/vcpkg_Util.h
index a62b48d54..da2f8eb69 100644
--- a/toolsrc/include/vcpkg_Util.h
+++ b/toolsrc/include/vcpkg_Util.h
@@ -62,4 +62,14 @@ namespace vcpkg::Util
(*output)[key].push_back(&element);
}
}
+
+ struct MoveOnlyBase
+ {
+ MoveOnlyBase() = default;
+ MoveOnlyBase(const MoveOnlyBase&) = delete;
+ MoveOnlyBase(MoveOnlyBase&&) = default;
+
+ MoveOnlyBase& operator=(const MoveOnlyBase&) = delete;
+ MoveOnlyBase& operator=(MoveOnlyBase&&) = default;
+ };
} \ No newline at end of file