diff options
author | Craig Scott <craig.scott@crascit.com> | 2022-05-18 13:29:21 (GMT) |
---|---|---|
committer | Craig Scott <craig.scott@crascit.com> | 2022-05-24 22:46:18 (GMT) |
commit | 2aa83fa15b01941f0267e20a1a4e29793651fefd (patch) | |
tree | 7cd1ba4d72b087094815716e53f8a90fee035205 /Source/cmDependencyProvider.h | |
parent | 8a28368feb938f301604c24c0294e2a25749cc77 (diff) | |
download | CMake-2aa83fa15b01941f0267e20a1a4e29793651fefd.zip CMake-2aa83fa15b01941f0267e20a1a4e29793651fefd.tar.gz CMake-2aa83fa15b01941f0267e20a1a4e29793651fefd.tar.bz2 |
Dependency providers: Add find_package and FetchContent support
Fixes: #22619
Diffstat (limited to 'Source/cmDependencyProvider.h')
-rw-r--r-- | Source/cmDependencyProvider.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Source/cmDependencyProvider.h b/Source/cmDependencyProvider.h new file mode 100644 index 0000000..a6670b4 --- /dev/null +++ b/Source/cmDependencyProvider.h @@ -0,0 +1,38 @@ +/* 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; +}; |