diff options
Diffstat (limited to 'Source/cmQtAutoGenerators.h')
-rw-r--r-- | Source/cmQtAutoGenerators.h | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h new file mode 100644 index 0000000..696abc8 --- /dev/null +++ b/Source/cmQtAutoGenerators.h @@ -0,0 +1,131 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2004-2011 Kitware, Inc. + Copyright 2011 Alexander Neundorf (neundorf@kde.org) + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ + +#ifndef cmQtAutoGenerators_h +#define cmQtAutoGenerators_h + +class cmGlobalGenerator; +class cmMakefile; + +class cmQtAutoGenerators +{ +public: + cmQtAutoGenerators(); + bool Run(const char* targetDirectory, const char *config); + + bool InitializeMocSourceFile(cmTarget* target); + void SetupAutoGenerateTarget(cmTarget* target); + +private: + void SetupAutoMocTarget(cmTarget* target, + const std::string &autogenTargetName, + std::map<std::string, std::string> &configIncludes, + std::map<std::string, std::string> &configDefines); + void SetupAutoUicTarget(cmTarget* target); + void SetupAutoRccTarget(cmTarget* target); + + cmGlobalGenerator* CreateGlobalGenerator(cmake* cm, + const char* targetDirectory); + + bool ReadAutogenInfoFile(cmMakefile* makefile, + const char* targetDirectory, + const char *config); + bool ReadOldMocDefinitionsFile(cmMakefile* makefile, + const char* targetDirectory); + void WriteOldMocDefinitionsFile(const char* targetDirectory); + + std::string MakeCompileSettingsString(cmMakefile* makefile); + + bool RunAutogen(cmMakefile* makefile); + bool GenerateMoc(const std::string& sourceFile, + const std::string& mocFileName); + bool GenerateUi(const std::string& uiFileName); + bool GenerateQrc(); + void ParseCppFile(const std::string& absFilename, + const std::vector<std::string>& headerExtensions, + std::map<std::string, std::string>& includedMocs, + std::vector<std::string>& includedUis); + void StrictParseCppFile(const std::string& absFilename, + const std::vector<std::string>& headerExtensions, + std::map<std::string, std::string>& includedMocs, + std::vector<std::string>& includedUis); + void SearchHeadersForCppFile(const std::string& absFilename, + const std::vector<std::string>& headerExtensions, + std::set<std::string>& absHeaders); + + void ParseHeaders(const std::set<std::string>& absHeaders, + const std::map<std::string, std::string>& includedMocs, + std::map<std::string, std::string>& notIncludedMocs, + std::vector<std::string>& includedUis); + + void ParseForUic(const std::string& fileName, + const std::string& contentsString, + std::vector<std::string>& includedUis); + + void ParseForUic(const std::string& fileName, + std::vector<std::string>& includedUis); + + void Init(); + + std::string Join(const std::vector<std::string>& lst, char separator); + bool EndsWith(const std::string& str, const std::string& with); + bool StartsWith(const std::string& str, const std::string& with); + std::string ReadAll(const std::string& filename); + + void MergeUicOptions(std::vector<std::string> &opts, + const std::vector<std::string> &fileOpts, bool isQt5); + + void MergeRccOptions(std::vector<std::string> &opts, + const std::vector<std::string> &fileOpts, bool isQt5); + + std::string QtMajorVersion; + std::string Sources; + std::string RccSources; + std::string SkipMoc; + std::string SkipUic; + std::string Headers; + bool IncludeProjectDirsBefore; + std::string Srcdir; + std::string Builddir; + std::string MocExecutable; + std::string UicExecutable; + std::string RccExecutable; + std::string MocCompileDefinitionsStr; + std::string MocIncludesStr; + std::string MocOptionsStr; + std::string ProjectBinaryDir; + std::string ProjectSourceDir; + std::string TargetName; + + std::string CurrentCompileSettingsStr; + std::string OldCompileSettingsStr; + + std::string OutMocCppFilename; + std::list<std::string> MocIncludes; + std::list<std::string> MocDefinitions; + std::vector<std::string> MocOptions; + std::vector<std::string> UicTargetOptions; + std::map<std::string, std::string> UicOptions; + std::map<std::string, std::string> RccOptions; + + bool Verbose; + bool ColorOutput; + bool RunMocFailed; + bool RunUicFailed; + bool RunRccFailed; + bool GenerateAll; + bool RelaxedMode; + +}; + +#endif |