[Dependency Scanning] Collect and report each module dependency's Link Libraries

This commit is contained in:
artemcm
2024-05-24 15:21:58 -07:00
committed by Artem Chikin
parent 083fdaa0de
commit d70863501e
34 changed files with 640 additions and 291 deletions

View File

@@ -499,11 +499,21 @@ SerializedModuleLoaderBase::scanModuleFile(Twine modulePath, bool isFramework,
optionalModuleImports.push_back(
ScannerImportStatementInfo(optionalImportedModule.str()));
std::vector<LinkLibrary> linkLibraries;
{
linkLibraries.reserve(loadedModuleFile->getLinkLibraries().size());
llvm::copy(loadedModuleFile->getLinkLibraries(),
std::back_inserter(linkLibraries));
if (loadedModuleFile->isFramework())
linkLibraries.push_back(LinkLibrary(loadedModuleFile->getName(),
LibraryKind::Framework));
}
// Map the set of dependencies over to the "module dependencies".
auto dependencies = ModuleDependencyInfo::forSwiftBinaryModule(
modulePath.str(), moduleDocPath, sourceInfoPath, moduleImports,
optionalModuleImports, importedHeader, isFramework,
/*module-cache-key*/ "");
optionalModuleImports, linkLibraries, importedHeader, isFramework,
loadedModuleFile->isStaticLibrary(), /*module-cache-key*/ "");
return std::move(dependencies);
}