1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
5 #include "cmConfigure.h" // IWYU pragma: keep
12 class cmInstallExportGenerator;
13 class cmLocalGenerator;
16 /// A set of targets that were installed with the same EXPORT parameter.
20 /// Construct an empty export set named \a name
21 cmExportSet(std::string name);
25 cmExportSet(const cmExportSet&) = delete;
26 cmExportSet& operator=(const cmExportSet&) = delete;
28 bool Compute(cmLocalGenerator* lg);
30 void AddTargetExport(std::unique_ptr<cmTargetExport> tgt);
32 void AddInstallation(cmInstallExportGenerator const* installation);
34 std::string const& GetName() const { return this->Name; }
36 std::vector<std::unique_ptr<cmTargetExport>> const& GetTargetExports() const
38 return this->TargetExports;
41 std::vector<cmInstallExportGenerator const*> const* GetInstallations() const
43 return &this->Installations;
47 std::vector<std::unique_ptr<cmTargetExport>> TargetExports;
49 std::vector<cmInstallExportGenerator const*> Installations;
52 /// A name -> cmExportSet map with overloaded operator[].
53 class cmExportSetMap : public std::map<std::string, cmExportSet>
56 /** \brief Overloaded operator[].
58 * The operator is overloaded because cmExportSet has no default constructor:
59 * we do not want unnamed export sets.
61 cmExportSet& operator[](const std::string& name);