ModuleInterface: preserve AutolinkForceLoad option when generating .swiftmodule from .swiftinterface

This change ensures using .swiftmodule built from source has the same behavior as
using .swiftmodule built from .swiftinterface.

A swift-ide-test utility is added to print linked libraries from a Swift module for
testing purposes.

rdar://58057556
This commit is contained in:
Xi Ge
2019-12-20 14:12:58 -08:00
parent d903ca9a9c
commit 133e8a186f
3 changed files with 87 additions and 1 deletions

View File

@@ -348,6 +348,8 @@ bool ModuleInterfaceBuilder::buildSwiftModule(
std::string OutPathStr = OutPath;
SerializationOpts.OutputPath = OutPathStr.c_str();
SerializationOpts.ModuleLinkName = FEOpts.ModuleLinkName;
SerializationOpts.AutolinkForceLoad =
!subInvocation.getIRGenOptions().ForceLoadSymbolName.empty();
// Record any non-SDK module interface files for the debug info.
StringRef SDKPath = SubInstance.getASTContext().SearchPathOpts.SDKPath;