#pragma once #include #include "package_spec.h" #include "StatusParagraphs.h" #include "vcpkg_paths.h" namespace vcpkg::Dependencies { enum class request_type { USER_REQUESTED, AUTO_SELECTED }; enum class install_plan_type { BUILD_AND_INSTALL, INSTALL, ALREADY_INSTALLED }; struct install_plan_action { install_plan_type plan_type; std::unique_ptr binary_pgh; std::unique_ptr source_pgh; }; struct package_spec_with_install_plan { package_spec spec; install_plan_action plan; }; enum class remove_plan_type { NOT_INSTALLED, REMOVE }; struct remove_plan_action { remove_plan_type plan_type; request_type request_type; StatusParagraph* status_pgh; }; struct package_spec_with_remove_plan { package_spec spec; remove_plan_action plan; }; std::vector create_install_plan(const vcpkg_paths& paths, const std::vector& specs, const StatusParagraphs& status_db); std::vector create_remove_plan(const vcpkg_paths& paths, const std::vector& specs, const StatusParagraphs& status_db); }