install(EXPORT): Export find_dependency() calls

Issue: #20511
Co-Authored-by: Brad King <brad.king@kitware.com>
Co-Authored-by: Robert Maynard <rmaynard@nvidia.com>
This commit is contained in:
Kyle Edwards
2023-11-07 11:44:00 -05:00
parent 2837f592ab
commit c6e6861e63
53 changed files with 700 additions and 10 deletions
+28
View File
@@ -9,6 +9,8 @@
#include <string>
#include <vector>
#include <cm/optional>
class cmInstallExportGenerator;
class cmLocalGenerator;
class cmTargetExport;
@@ -43,10 +45,36 @@ public:
return &this->Installations;
}
enum class PackageDependencyExportEnabled
{
Auto,
Off,
On,
};
struct PackageDependency
{
PackageDependencyExportEnabled Enabled =
PackageDependencyExportEnabled::Auto;
std::vector<std::string> ExtraArguments;
cm::optional<unsigned int> SpecifiedIndex;
cm::optional<unsigned int> FindPackageIndex;
};
PackageDependency& GetPackageDependencyForSetup(const std::string& name);
const std::map<std::string, PackageDependency>& GetPackageDependencies()
const
{
return this->PackageDependencies;
}
private:
std::vector<std::unique_ptr<cmTargetExport>> TargetExports;
std::string Name;
std::vector<cmInstallExportGenerator const*> Installations;
std::map<std::string, PackageDependency> PackageDependencies;
unsigned int NextPackageDependencyIndex = 0;
};
/// A name -> cmExportSet map with overloaded operator[].