| /*============================================================================ |
| 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 std::string& targetDirectory, const std::string& config); |
| |
| bool InitializeAutogenTarget(cmTarget* target); |
| void SetupAutoGenerateTarget(cmTarget const* target); |
| void SetupSourceFiles(cmTarget const* target); |
| |
| private: |
| void SetupAutoMocTarget(cmTarget const* target, |
| const std::string &autogenTargetName, |
| std::map<std::string, std::string> &configIncludes, |
| std::map<std::string, std::string> &configDefines); |
| void SetupAutoUicTarget(cmTarget const* target, |
| std::map<std::string, std::string> &configUicOptions); |
| void SetupAutoRccTarget(cmTarget const* target); |
| |
| bool ReadAutogenInfoFile(cmMakefile* makefile, |
| const std::string& targetDirectory, |
| const std::string& config); |
| bool ReadOldMocDefinitionsFile(cmMakefile* makefile, |
| const std::string& targetDirectory); |
| void WriteOldMocDefinitionsFile(const std::string& 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& realName, 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::map<std::string, 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::map<std::string, 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::map<std::string, std::vector<std::string> >& includedUis); |
| |
| void ParseForUic(const std::string& fileName, |
| const std::string& contentsString, |
| std::map<std::string, std::vector<std::string> >& includedUis); |
| |
| void ParseForUic(const std::string& fileName, |
| std::map<std::string, 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); |
| |
| 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 OriginTargetName; |
| |
| 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 |