/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #pragma once #include "cmConfigure.h" // IWYU pragma: keep #include <algorithm> #include <string> #include <utility> #include <vector> class cmDependencyProvider { public: enum class Method { FindPackage, FetchContentMakeAvailableSerial, }; cmDependencyProvider(std::string command, std::vector<Method> methods) : Command(std::move(command)) , Methods(std::move(methods)) { } std::string const& GetCommand() const { return this->Command; } std::vector<Method> const& GetMethods() const { return this->Methods; } bool SupportsMethod(Method method) const { return std::find(this->Methods.begin(), this->Methods.end(), method) != this->Methods.end(); } private: std::string Command; std::vector<Method> Methods; };