This is an archive of the discontinued LLVM Phabricator instance.

[modules] Allow frameworks to have only a private module without a public one.
ClosedPublic

Authored by vsapsai on Feb 27 2020, 4:03 PM.

Details

Summary

Support only preferred spelling 'Modules/module.private.modulemap' and
not the deprecated 'module_private.map'.

rdar://problem/57715533

Diff Detail

Event Timeline

vsapsai created this revision.Feb 27 2020, 4:03 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 27 2020, 4:03 PM
vsapsai marked an inline comment as done.Feb 27 2020, 4:10 PM

Looks like other module-related tracking like LoadedModuleMaps, DirectoryHasModuleMap works without extra changes. And ModuleMapParser relies on a file name to decide if a module map is private or not, so the presence of a public module map doesn't matter for it.

clang/lib/Lex/HeaderSearch.cpp
1463–1470

We don't try to strip/add file extensions, so won't try to load a module map like 'module.private.private.modulemap'.

bruno accepted this revision.Feb 27 2020, 4:36 PM

Sounds great!

This revision is now accepted and ready to land.Feb 27 2020, 4:36 PM
This revision was automatically updated to reflect the committed changes.