| /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
| file Copyright.txt or https://cmake.org/licensing for details. */ |
| #ifndef cmQtAutoGenInitializer_h |
| #define cmQtAutoGenInitializer_h |
| |
| #include "cmConfigure.h" // IWYU pragma: keep |
| #include "cmQtAutoGen.h" |
| |
| #include <map> |
| #include <set> |
| #include <string> |
| #include <vector> |
| |
| class cmGeneratorTarget; |
| |
| /// @brief Initializes the QtAutoGen generators |
| class cmQtAutoGenInitializer : public cmQtAutoGen |
| { |
| public: |
| static std::string GetQtMajorVersion(cmGeneratorTarget const* target); |
| static std::string GetQtMinorVersion(cmGeneratorTarget const* target, |
| std::string const& qtVersionMajor); |
| |
| /// @brief Rcc job information |
| class Qrc |
| { |
| public: |
| Qrc() |
| : Generated(false) |
| , Unique(false) |
| { |
| } |
| |
| public: |
| std::string QrcFile; |
| std::string QrcName; |
| std::string PathChecksum; |
| std::string InfoFile; |
| std::string SettingsFile; |
| std::string RccFile; |
| bool Generated; |
| bool Unique; |
| std::vector<std::string> Options; |
| std::vector<std::string> Resources; |
| }; |
| |
| public: |
| cmQtAutoGenInitializer(cmGeneratorTarget* target, bool mocEnabled, |
| bool uicEnabled, bool rccEnabled, |
| std::string const& qtVersionMajor); |
| |
| void InitCustomTargets(); |
| void SetupCustomTargets(); |
| |
| private: |
| void SetupCustomTargetsMoc(); |
| void SetupCustomTargetsUic(); |
| |
| void AddGeneratedSource(std::string const& filename, GeneratorT genType); |
| |
| bool QtVersionGreaterOrEqual(unsigned long requestMajor, |
| unsigned long requestMinor) const; |
| |
| bool RccListInputs(std::string const& fileName, |
| std::vector<std::string>& files, |
| std::string& errorMessage); |
| |
| private: |
| cmGeneratorTarget* Target; |
| bool MocEnabled; |
| bool UicEnabled; |
| bool RccEnabled; |
| bool MultiConfig; |
| // Qt |
| std::string QtVersionMajor; |
| std::string QtVersionMinor; |
| std::string MocExecutable; |
| std::string UicExecutable; |
| std::string RccExecutable; |
| std::vector<std::string> RccListOptions; |
| // Configurations |
| std::string ConfigDefault; |
| std::vector<std::string> ConfigsList; |
| std::string Parallel; |
| // Names |
| std::string AutogenTargetName; |
| std::string AutogenFolder; |
| std::string AutogenInfoFile; |
| std::string AutogenSettingsFile; |
| // Directories |
| std::string DirInfo; |
| std::string DirBuild; |
| std::string DirWork; |
| // Sources |
| std::vector<std::string> Headers; |
| std::vector<std::string> Sources; |
| // Moc |
| std::string MocPredefsCmd; |
| std::set<std::string> MocSkip; |
| std::string MocIncludes; |
| std::map<std::string, std::string> MocIncludesConfig; |
| std::string MocDefines; |
| std::map<std::string, std::string> MocDefinesConfig; |
| // Uic |
| std::set<std::string> UicSkip; |
| std::vector<std::string> UicSearchPaths; |
| std::string UicOptions; |
| std::map<std::string, std::string> UicOptionsConfig; |
| std::vector<std::string> UicFileFiles; |
| std::vector<std::vector<std::string>> UicFileOptions; |
| // Rcc |
| std::vector<Qrc> Qrcs; |
| }; |
| |
| #endif |