mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[Caching] Support CrossImport modules for caching build
Add support for cross import modules by ingesting swiftoverlay files for the cross import into CAS file system. The long-term better fix will be just passing the cross import information from scanner to swift-frontend so frontend doesn't need to read overlay files again to figure out the cross import module. rdar://123839248
This commit is contained in:
@@ -186,8 +186,9 @@ void ModuleLoader::findOverlayFiles(SourceLoc diagLoc, ModuleDecl *module,
|
||||
}
|
||||
|
||||
llvm::StringMap<llvm::SmallSetVector<Identifier, 4>>
|
||||
ModuleDependencyInfo::collectCrossImportOverlayNames(ASTContext &ctx,
|
||||
StringRef moduleName) const {
|
||||
ModuleDependencyInfo::collectCrossImportOverlayNames(
|
||||
ASTContext &ctx, StringRef moduleName,
|
||||
std::vector<std::string> &overlayFiles) const {
|
||||
using namespace llvm::sys;
|
||||
using namespace file_types;
|
||||
std::optional<std::string> modulePath;
|
||||
@@ -239,6 +240,7 @@ ModuleDependencyInfo::collectCrossImportOverlayNames(ASTContext &ctx,
|
||||
ModuleDecl::collectCrossImportOverlay(ctx, file, moduleName,
|
||||
bystandingModule);
|
||||
result[bystandingModule] = std::move(overlayNames);
|
||||
overlayFiles.push_back(file.str());
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user