1 /*============================================================================
2 CMake - Cross Platform Makefile Generator
3 Copyright 2004-2011 Kitware, Inc.
4 Copyright 2011 Alexander Neundorf (neundorf@kde.org)
6 Distributed under the OSI-approved BSD License (the "License");
7 see accompanying file Copyright.txt for details.
9 This software is distributed WITHOUT ANY WARRANTY; without even the
10 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11 See the License for more information.
12 ============================================================================*/
17 class cmGlobalGenerator;
24 bool Run(const char* targetDirectory);
26 void SetupAutomocTarget(cmTarget* target);
29 cmGlobalGenerator* CreateGlobalGenerator(cmake* cm,
30 const char* targetDirectory);
32 bool ReadAutomocInfoFile(cmMakefile* makefile,
33 const char* targetDirectory);
34 bool ReadOldMocDefinitionsFile(cmMakefile* makefile,
35 const char* targetDirectory);
36 void WriteOldMocDefinitionsFile(const char* targetDirectory);
39 bool GenerateMoc(const std::string& sourceFile,
40 const std::string& mocFileName);
41 void ParseCppFile(const std::string& absFilename,
42 const std::list<std::string>& headerExtensions,
43 std::map<std::string, std::string>& includedMocs);
44 void StrictParseCppFile(const std::string& absFilename,
45 const std::list<std::string>& headerExtensions,
46 std::map<std::string, std::string>& includedMocs);
47 void SearchHeadersForCppFile(const std::string& absFilename,
48 const std::list<std::string>& headerExtensions,
49 std::set<std::string>& absHeaders);
51 void ParseHeaders(const std::set<std::string>& absHeaders,
52 const std::map<std::string, std::string>& includedMocs,
53 std::map<std::string, std::string>& notIncludedMocs);
57 std::string Join(const std::list<std::string>& lst, char separator);
58 bool EndsWith(const std::string& str, const std::string& with);
59 bool StartsWith(const std::string& str, const std::string& with);
60 std::string ReadAll(const std::string& filename);
62 std::string QtMajorVersion;
65 bool IncludeProjectDirsBefore;
68 std::string MocExecutable;
69 std::string MocCompileDefinitionsStr;
70 std::string MocDefinitionsStr;
71 std::string MocIncludesStr;
72 std::string MocOptionsStr;
73 std::string ProjectBinaryDir;
74 std::string ProjectSourceDir;
75 std::string TargetName;
77 std::string OldMocDefinitionsStr;
79 std::string OutMocCppFilename;
80 std::list<std::string> MocIncludes;
81 std::list<std::string> MocDefinitions;
82 std::vector<std::string> MocOptions;