mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[ScanDependency] Teach dependency scanner to use resolved macros option
Teach dependency scanner to construct build commands using resolved plugin search path option. This ensures the modules that do not have access to the macro plugins will not have a different variant due to different plugin search path. rdar://136682810
This commit is contained in:
@@ -1723,47 +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;
|
||||
}
|
||||
case PluginSearchOption::Kind::ResolvedPluginConfig: {
|
||||
auto &val = entry.get<PluginSearchOption::ResolvedPluginConfig>();
|
||||
for (auto &moduleName : val.ModuleNames) {
|
||||
GenericArgs.push_back("-load-plugin-executable");
|
||||
GenericArgs.push_back(ArgSaver.save(
|
||||
val.LibraryPath + "#" + val.ExecutablePath + "#" + moduleName));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Inherit the plugin search opts but do not inherit the arguments.
|
||||
genericSubInvocation.getSearchPathOptions().PluginSearchOpts =
|
||||
SearchPathOpts.PluginSearchOpts;
|
||||
|
||||
genericSubInvocation.getFrontendOptions().InputMode
|
||||
= FrontendOptions::ParseInputMode::SwiftModuleInterface;
|
||||
|
||||
Reference in New Issue
Block a user