| 6429 | } |
| 6430 | |
| 6431 | void cmGeneratorTarget::BuildFileSetInfoCache(std::string const& config) const |
| 6432 | { |
| 6433 | auto& per_config = this->Configs[config]; |
| 6434 | |
| 6435 | if (per_config.BuiltFileSetCache) { |
| 6436 | return; |
| 6437 | } |
| 6438 | |
| 6439 | auto const* tgt = this->Target; |
| 6440 | |
| 6441 | for (auto const& name : tgt->GetAllFileSetNames()) { |
| 6442 | auto const* file_set = tgt->GetFileSet(name); |
| 6443 | if (!file_set) { |
| 6444 | tgt->GetMakefile()->IssueMessage( |
| 6445 | MessageType::INTERNAL_ERROR, |
| 6446 | cmStrCat("Target \"", tgt->GetName(), |
| 6447 | "\" is tracked to have file set \"", name, |
| 6448 | "\", but it was not found.")); |
| 6449 | continue; |
| 6450 | } |
| 6451 | |
| 6452 | cm::GenEx::Context context(this->LocalGenerator, config); |
| 6453 | |
| 6454 | auto fileEntries = file_set->CompileFileEntries(); |
| 6455 | auto directoryEntries = file_set->CompileDirectoryEntries(); |
| 6456 | auto directories = |
| 6457 | file_set->EvaluateDirectoryEntries(directoryEntries, context, this); |
| 6458 | |
| 6459 | std::map<std::string, std::vector<std::string>> files; |
| 6460 | for (auto const& entry : fileEntries) { |
| 6461 | file_set->EvaluateFileEntry(directories, files, entry, context, this); |
| 6462 | } |
| 6463 | |
| 6464 | for (auto const& it : files) { |
| 6465 | for (auto const& filename : it.second) { |
| 6466 | auto collapsedFile = cmSystemTools::CollapseFullPath(filename); |
| 6467 | per_config.FileSetCache[collapsedFile] = file_set; |
| 6468 | } |
| 6469 | } |
| 6470 | } |
| 6471 | |
| 6472 | per_config.BuiltFileSetCache = true; |
| 6473 | } |
| 6474 | |
| 6475 | std::string cmGeneratorTarget::GetSwiftModuleName() const |
| 6476 | { |
no test coverage detected