/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #ifndef cmQtAutoGenGlobalInitializer_h #define cmQtAutoGenGlobalInitializer_h #include "cmConfigure.h" // IWYU pragma: keep #include #include // IWYU pragma: keep #include #include #include class cmLocalGenerator; class cmQtAutoGenInitializer; /// @brief Initializes the QtAutoGen generators class cmQtAutoGenGlobalInitializer { public: cmQtAutoGenGlobalInitializer( std::vector const& localGenerators); ~cmQtAutoGenGlobalInitializer(); bool generate(); private: friend class cmQtAutoGenInitializer; bool InitializeCustomTargets(); bool SetupCustomTargets(); void GetOrCreateGlobalTarget(cmLocalGenerator* localGen, std::string const& name, std::string const& comment); void AddToGlobalAutoGen(cmLocalGenerator* localGen, std::string const& targetName); void AddToGlobalAutoRcc(cmLocalGenerator* localGen, std::string const& targetName); bool GetExecutableTestOutput(std::string const& generator, std::string const& executable, std::string& error, std::string* output); private: std::vector> Initializers_; std::map GlobalAutoGenTargets_; std::map GlobalAutoRccTargets_; std::unordered_map ExecutableTestOutputs_; }; #endif