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
10 #include <unordered_map>
13 #include "cmQtAutoGen.h"
15 class cmLocalGenerator;
16 class cmQtAutoGenInitializer;
18 /// @brief Initializes the QtAutoGen generators
19 class cmQtAutoGenGlobalInitializer
22 /// @brief Collection of QtAutogen related keywords
32 std::string AUTOMOC_EXECUTABLE;
33 std::string AUTOUIC_EXECUTABLE;
34 std::string AUTORCC_EXECUTABLE;
36 std::string SKIP_AUTOGEN;
37 std::string SKIP_AUTOMOC;
38 std::string SKIP_AUTOUIC;
39 std::string SKIP_AUTORCC;
41 std::string AUTOUIC_OPTIONS;
42 std::string AUTORCC_OPTIONS;
48 cmQtAutoGenGlobalInitializer(
49 std::vector<std::unique_ptr<cmLocalGenerator>> const& localGenerators);
50 ~cmQtAutoGenGlobalInitializer();
52 Keywords const& kw() const { return this->Keywords_; }
57 friend class cmQtAutoGenInitializer;
59 bool InitializeCustomTargets();
60 bool SetupCustomTargets();
62 void GetOrCreateGlobalTarget(cmLocalGenerator* localGen,
63 std::string const& name,
64 std::string const& comment);
66 void AddToGlobalAutoGen(cmLocalGenerator* localGen,
67 std::string const& targetName);
68 void AddToGlobalAutoRcc(cmLocalGenerator* localGen,
69 std::string const& targetName);
71 cmQtAutoGen::CompilerFeaturesHandle GetCompilerFeatures(
72 std::string const& generator, std::string const& executable,
75 std::vector<std::unique_ptr<cmQtAutoGenInitializer>> Initializers_;
76 std::map<cmLocalGenerator*, std::string> GlobalAutoGenTargets_;
77 std::map<cmLocalGenerator*, std::string> GlobalAutoRccTargets_;
78 std::unordered_map<std::string, cmQtAutoGen::CompilerFeaturesHandle>
80 Keywords const Keywords_;