/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file LICENSE.rst or https://cmake.org/licensing for details. */ #pragma once #include "cmConfigure.h" // IWYU pragma: keep #include #include #include #include #include "cmConstStack.h" /** * This data represents the actual contents of find_package * -Config.cmake or .cps file, and not what is passed * to the find_package command. They can be the same, but it is not guaranteed. */ class cmPackageInformation { public: cm::optional Directory; cm::optional Version; cm::optional Description; cm::optional License; cm::optional Website; cm::optional PackageUrl; std::set Components; }; /** * Represents one call to find_package. */ class cmFindPackageCall { public: std::string const Name; std::shared_ptr PackageInfo; unsigned int Index; }; /** * Represents a stack of find_package calls with efficient value semantics. */ class cmFindPackageStack : public cmConstStack { using cmConstStack::cmConstStack; friend class cmConstStack; }; #ifndef cmFindPackageStack_cxx extern template class cmConstStack; #endif