Merge pull request #76732 from cachemeifyoucan/eng/PR-136682810

[Macro] Precise macro plugin dependency during scanning
This commit is contained in:
Steven Wu
2024-11-04 09:21:33 -08:00
committed by GitHub
13 changed files with 117 additions and 64 deletions

View File

@@ -1723,38 +1723,9 @@ void InterfaceSubContextDelegateImpl::inheritOptionsForBuildingInterface(
genericSubInvocation.setPlatformAvailabilityInheritanceMapPath(*SearchPathOpts.PlatformAvailabilityInheritanceMapPath);
}
for (auto &entry : SearchPathOpts.PluginSearchOpts) {
switch (entry.getKind()) {
case PluginSearchOption::Kind::LoadPluginLibrary: {
auto &val = entry.get<PluginSearchOption::LoadPluginLibrary>();
GenericArgs.push_back("-load-plugin-library");
GenericArgs.push_back(ArgSaver.save(val.LibraryPath));
break;
}
case PluginSearchOption::Kind::LoadPluginExecutable: {
auto &val = entry.get<PluginSearchOption::LoadPluginExecutable>();
for (auto &moduleName : val.ModuleNames) {
GenericArgs.push_back("-load-plugin-executable");
GenericArgs.push_back(
ArgSaver.save(val.ExecutablePath + "#" + moduleName));
}
break;
}
case PluginSearchOption::Kind::PluginPath: {
auto &val = entry.get<PluginSearchOption::PluginPath>();
GenericArgs.push_back("-plugin-path");
GenericArgs.push_back(ArgSaver.save(val.SearchPath));
break;
}
case PluginSearchOption::Kind::ExternalPluginPath: {
auto &val = entry.get<PluginSearchOption::ExternalPluginPath>();
GenericArgs.push_back("-external-plugin-path");
GenericArgs.push_back(
ArgSaver.save(val.SearchPath + "#" + val.ServerPath));
break;
}
}
}
// Inherit the plugin search opts but do not inherit the arguments.
genericSubInvocation.getSearchPathOptions().PluginSearchOpts =
SearchPathOpts.PluginSearchOpts;
genericSubInvocation.getFrontendOptions().InputMode
= FrontendOptions::ParseInputMode::SwiftModuleInterface;