cmQtAutoGenInitializer.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #ifndef cmQtAutoGenInitializer_h
  4. #define cmQtAutoGenInitializer_h
  5. #include "cmConfigure.h" // IWYU pragma: keep
  6. #include "cmQtAutoGen.h"
  7. #include <map>
  8. #include <set>
  9. #include <string>
  10. #include <vector>
  11. class cmGeneratorTarget;
  12. /// @brief Initializes the QtAutoGen generators
  13. class cmQtAutoGenInitializer : public cmQtAutoGen
  14. {
  15. public:
  16. static std::string GetQtMajorVersion(cmGeneratorTarget const* target);
  17. static std::string GetQtMinorVersion(cmGeneratorTarget const* target,
  18. std::string const& qtVersionMajor);
  19. /// @brief Rcc job information
  20. class Qrc
  21. {
  22. public:
  23. Qrc()
  24. : Generated(false)
  25. , Unique(false)
  26. {
  27. }
  28. public:
  29. std::string LockFile;
  30. std::string QrcFile;
  31. std::string QrcName;
  32. std::string PathChecksum;
  33. std::string InfoFile;
  34. std::string SettingsFile;
  35. std::string RccFile;
  36. bool Generated;
  37. bool Unique;
  38. std::vector<std::string> Options;
  39. std::vector<std::string> Resources;
  40. };
  41. public:
  42. cmQtAutoGenInitializer(cmGeneratorTarget* target, bool mocEnabled,
  43. bool uicEnabled, bool rccEnabled,
  44. std::string const& qtVersionMajor);
  45. void InitCustomTargets();
  46. void SetupCustomTargets();
  47. private:
  48. void SetupCustomTargetsMoc();
  49. void SetupCustomTargetsUic();
  50. void AddGeneratedSource(std::string const& filename, GeneratorT genType);
  51. bool QtVersionGreaterOrEqual(unsigned long requestMajor,
  52. unsigned long requestMinor) const;
  53. bool RccListInputs(std::string const& fileName,
  54. std::vector<std::string>& files,
  55. std::string& errorMessage);
  56. private:
  57. cmGeneratorTarget* Target;
  58. bool MocEnabled;
  59. bool UicEnabled;
  60. bool RccEnabled;
  61. bool MultiConfig;
  62. // Qt
  63. std::string QtVersionMajor;
  64. std::string QtVersionMinor;
  65. std::string MocExecutable;
  66. std::string UicExecutable;
  67. std::string RccExecutable;
  68. std::vector<std::string> RccListOptions;
  69. // Configurations
  70. std::string ConfigDefault;
  71. std::vector<std::string> ConfigsList;
  72. std::string Parallel;
  73. std::string Verbosity;
  74. // Names
  75. std::string AutogenTargetName;
  76. std::string AutogenFolder;
  77. std::string AutogenInfoFile;
  78. std::string AutogenSettingsFile;
  79. // Directories
  80. std::string DirInfo;
  81. std::string DirBuild;
  82. std::string DirWork;
  83. // Sources
  84. std::vector<std::string> Headers;
  85. std::vector<std::string> Sources;
  86. // Moc
  87. std::string MocPredefsCmd;
  88. std::set<std::string> MocSkip;
  89. std::string MocIncludes;
  90. std::map<std::string, std::string> MocIncludesConfig;
  91. std::string MocDefines;
  92. std::map<std::string, std::string> MocDefinesConfig;
  93. // Uic
  94. std::set<std::string> UicSkip;
  95. std::vector<std::string> UicSearchPaths;
  96. std::string UicOptions;
  97. std::map<std::string, std::string> UicOptionsConfig;
  98. std::vector<std::string> UicFileFiles;
  99. std::vector<std::vector<std::string>> UicFileOptions;
  100. // Rcc
  101. std::vector<Qrc> Qrcs;
  102. };
  103. #endif