Implement parsing, AST, (de-)serialization, and placeholder global
metadata for linking against the libraries/frameworks for imported modules. The module map language is extended with a new "link" directive that specifies what library or framework to link against when a module is imported, e.g., link "clangAST" or link framework "MyFramework" Importing the corresponding module (or any of its submodules) will eventually link against the named library/framework. For now, I've added some placeholder global metadata that encodes the imported libraries/frameworks, so that we can test that this information gets through to the IR. The format of the data is still under discussion. llvm-svn: 172437
This commit is contained in:
@@ -257,6 +257,16 @@ void Module::print(raw_ostream &OS, unsigned Indent) const {
|
||||
OS << "\n";
|
||||
}
|
||||
|
||||
for (unsigned I = 0, N = LinkLibraries.size(); I != N; ++I) {
|
||||
OS.indent(Indent + 2);
|
||||
OS << "link ";
|
||||
if (LinkLibraries[I].IsFramework)
|
||||
OS << "framework ";
|
||||
OS << "\"";
|
||||
OS.write_escaped(LinkLibraries[I].Library);
|
||||
OS << "\"";
|
||||
}
|
||||
|
||||
if (InferSubmodules) {
|
||||
OS.indent(Indent + 2);
|
||||
if (InferExplicitSubmodules)
|
||||
|
||||
Reference in New Issue
Block a user