MCPcopy Create free account
hub / github.com/Kitware/CMake / Generate

Method Generate

Source/cmGlobalUnixMakefileGenerator3.cxx:107–149  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

105}
106
107void cmGlobalUnixMakefileGenerator3::Generate()
108{
109 this->ClangTidyExportFixesDirs.clear();
110 this->ClangTidyExportFixesFiles.clear();
111
112 // first do superclass method
113 this->cmGlobalGenerator::Generate();
114
115 // initialize progress
116 unsigned long total = 0;
117 for (auto const& pmi : this->ProgressMap) {
118 total += pmi.second.NumberOfActions;
119 }
120
121 // write each target's progress.make this loop is done twice. Basically the
122 // Generate pass counts all the actions, the first loop below determines
123 // how many actions have progress updates for each target and writes to
124 // correct variable values for everything except the all targets. The
125 // second loop actually writes out correct values for the all targets as
126 // well. This is because the all targets require more information that is
127 // computed in the first loop.
128 unsigned long current = 0;
129 for (auto& pmi : this->ProgressMap) {
130 pmi.second.WriteProgressVariables(total, current);
131 }
132 for (auto const& lg : this->LocalGenerators) {
133 std::string markFileName =
134 cmStrCat(lg->GetCurrentBinaryDirectory(), "/CMakeFiles/progress.marks");
135 cmGeneratedFileStream markFile(markFileName);
136 markFile << this->CountProgressMarksInAll(*lg) << "\n";
137 }
138
139 // write the main makefile
140 this->WriteMainMakefile2();
141 this->WriteMainCMakefile();
142
143 if (this->CommandDatabase) {
144 *this->CommandDatabase << "\n]";
145 this->CommandDatabase.reset();
146 }
147
148 this->RemoveUnknownClangTidyExportFixesFiles();
149}
150
151void cmGlobalUnixMakefileGenerator3::AddCXXCompileCommand(
152 std::string const& sourceFile, std::string const& workingDirectory,

Callers

nothing calls this directly

Calls 8

WriteMainMakefile2Method · 0.95
WriteMainCMakefileMethod · 0.95
cmStrCatFunction · 0.70
clearMethod · 0.45
resetMethod · 0.45

Tested by

no test coverage detected