| 112 | } |
| 113 | |
| 114 | bool cmExportBuildFileGenerator::CollectExports( |
| 115 | std::function<void(cmGeneratorTarget const*)> visitor) |
| 116 | { |
| 117 | auto pred = [&](cmExportBuildFileGenerator::TargetExport& tei) -> bool { |
| 118 | cmGeneratorTarget* te = this->LG->FindGeneratorTargetToUse(tei.Name); |
| 119 | if (this->ExportedTargets.insert(te).second) { |
| 120 | this->Exports.emplace_back(te, tei.XcFrameworkLocation); |
| 121 | visitor(te); |
| 122 | return true; |
| 123 | } |
| 124 | |
| 125 | this->ComplainAboutDuplicateTarget(te->GetName()); |
| 126 | return false; |
| 127 | }; |
| 128 | |
| 129 | std::vector<TargetExport> targets; |
| 130 | this->GetTargets(targets); |
| 131 | return std::all_of(targets.begin(), targets.end(), pred); |
| 132 | } |
| 133 | |
| 134 | void cmExportBuildFileGenerator::HandleMissingTarget( |
| 135 | std::string& link_libs, cmGeneratorTarget const* depender, |
no test coverage detected