| 105 | } |
| 106 | |
| 107 | void 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 | |
| 151 | void cmGlobalUnixMakefileGenerator3::AddCXXCompileCommand( |
| 152 | std::string const& sourceFile, std::string const& workingDirectory, |
nothing calls this directly
no test coverage detected