| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #ifndef cmQtAutoGenerators_h
- #define cmQtAutoGenerators_h
- #include <cmConfigure.h> // IWYU pragma: keep
- #include <cmFilePathChecksum.h>
- #include <cmsys/RegularExpression.hxx>
- #include <list>
- #include <map>
- #include <set>
- #include <string>
- #include <vector>
- class cmMakefile;
- class cmQtAutoGenerators
- {
- public:
- cmQtAutoGenerators();
- bool Run(const std::string& targetDirectory, const std::string& config);
- private:
- // - Configuration
- bool ReadAutogenInfoFile(cmMakefile* makefile,
- const std::string& targetDirectory,
- const std::string& config);
- std::string MocSettingsStringCompose();
- std::string UicSettingsStringCompose();
- std::string RccSettingsStringCompose();
- void OldSettingsReadFile(cmMakefile* makefile,
- const std::string& targetDirectory);
- bool OldSettingsWriteFile(const std::string& targetDirectory);
- // - Init and run
- void Init();
- bool RunAutogen(cmMakefile* makefile);
- // - Content analysis
- bool requiresMocing(const std::string& text, std::string& macroName);
- bool MocSkipTest(const std::string& absFilename);
- bool UicSkipTest(const std::string& absFilename);
- bool ParseSourceFile(
- const std::string& absFilename,
- const std::vector<std::string>& headerExtensions,
- std::map<std::string, std::string>& includedMocs,
- std::map<std::string, std::vector<std::string> >& includedUis,
- bool relaxed);
- void SearchHeadersForSourceFile(
- const std::string& absFilename,
- const std::vector<std::string>& headerExtensions,
- std::set<std::string>& absHeadersMoc,
- std::set<std::string>& absHeadersUic);
- void ParseHeaders(
- const std::set<std::string>& absHeadersMoc,
- const std::set<std::string>& absHeadersUic,
- const std::map<std::string, std::string>& includedMocs,
- std::map<std::string, std::string>& notIncludedMocs,
- std::map<std::string, std::vector<std::string> >& includedUis);
- void ParseContentForUic(
- const std::string& fileName, const std::string& contentsString,
- std::map<std::string, std::vector<std::string> >& includedUis);
- bool ParseContentForMoc(const std::string& absFilename,
- const std::string& contentsString,
- const std::vector<std::string>& headerExtensions,
- std::map<std::string, std::string>& includedMocs,
- bool relaxed);
- // - Moc file generation
- bool MocGenerateAll(
- const std::map<std::string, std::string>& includedMocs,
- const std::map<std::string, std::string>& notIncludedMocs);
- bool MocGenerateFile(const std::string& sourceFile,
- const std::string& mocFileName,
- const std::string& subDirPrefix);
- // - Uic file generation
- bool UicGenerateAll(
- const std::map<std::string, std::vector<std::string> >& includedUis);
- bool UicGenerateFile(const std::string& realName,
- const std::string& uiInputFile,
- const std::string& uiOutputFile);
- // - Qrc file generation
- bool QrcGenerateAll();
- bool QrcGenerateFile(const std::string& qrcInputFile,
- const std::string& qrcOutputFile, bool unique_n);
- // - Logging
- void LogErrorNameCollision(
- const std::string& message,
- const std::multimap<std::string, std::string>& collisions);
- void LogBold(const std::string& message);
- void LogInfo(const std::string& message);
- void LogWarning(const std::string& message);
- void LogError(const std::string& message);
- void LogCommand(const std::vector<std::string>& command);
- // - Utility
- bool NameCollisionTest(const std::map<std::string, std::string>& genFiles,
- std::multimap<std::string, std::string>& collisions);
- bool MakeParentDirectory(const std::string& filename);
- // - Target names
- std::string OriginTargetName;
- std::string AutogenTargetName;
- // - Directories
- std::string ProjectSourceDir;
- std::string ProjectBinaryDir;
- std::string CurrentSourceDir;
- std::string CurrentBinaryDir;
- std::string AutogenBuildSubDir;
- // - Qt environment
- std::string QtMajorVersion;
- std::string MocExecutable;
- std::string UicExecutable;
- std::string RccExecutable;
- // - File lists
- std::vector<std::string> Sources;
- std::vector<std::string> Headers;
- // - Moc
- std::vector<std::string> SkipMoc;
- std::string MocCompileDefinitionsStr;
- std::string MocIncludesStr;
- std::string MocOptionsStr;
- std::string OutMocCppFilenameRel;
- std::string OutMocCppFilenameAbs;
- std::list<std::string> MocIncludes;
- std::list<std::string> MocDefinitions;
- std::vector<std::string> MocOptions;
- std::string MocSettingsString;
- // - Uic
- std::vector<std::string> SkipUic;
- std::vector<std::string> UicTargetOptions;
- std::map<std::string, std::string> UicOptions;
- std::string UicSettingsString;
- // - Rcc
- std::vector<std::string> RccSources;
- std::map<std::string, std::string> RccOptions;
- std::map<std::string, std::vector<std::string> > RccInputs;
- std::string RccSettingsString;
- // - Utility
- cmFilePathChecksum fpathCheckSum;
- cmsys::RegularExpression RegExpQObject;
- cmsys::RegularExpression RegExpQGadget;
- cmsys::RegularExpression RegExpMocInclude;
- cmsys::RegularExpression RegExpUicInclude;
- // - Flags
- bool IncludeProjectDirsBefore;
- bool Verbose;
- bool ColorOutput;
- bool RunMocFailed;
- bool RunUicFailed;
- bool RunRccFailed;
- bool GenerateMocAll;
- bool GenerateUicAll;
- bool GenerateRccAll;
- bool MocRelaxedMode;
- };
- #endif
|