aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Lex/HeaderSearch.cpp
diff options
context:
space:
mode:
authorVolodymyr Sapsai <vsapsai@apple.com>2020-02-27 15:51:24 -0800
committerVolodymyr Sapsai <vsapsai@apple.com>2020-02-28 15:40:24 -0800
commit4069dd14124e9a84b46f48153d4fbc4da811a45e (patch)
tree9056458be42f7456f6e795e71073c570539cba03 /clang/lib/Lex/HeaderSearch.cpp
parent7d973307d5515b44df92f041916a0be25c1faa4b (diff)
downloadllvm-4069dd14124e9a84b46f48153d4fbc4da811a45e.zip
llvm-4069dd14124e9a84b46f48153d4fbc4da811a45e.tar.gz
llvm-4069dd14124e9a84b46f48153d4fbc4da811a45e.tar.bz2
[modules] Allow frameworks to have only a private module without a public one.
Support only preferred spelling 'Modules/module.private.modulemap' and not the deprecated 'module_private.map'. rdar://problem/57715533 Reviewed By: bruno Differential Revision: https://reviews.llvm.org/D75311
Diffstat (limited to 'clang/lib/Lex/HeaderSearch.cpp')
-rw-r--r--clang/lib/Lex/HeaderSearch.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Lex/HeaderSearch.cpp b/clang/lib/Lex/HeaderSearch.cpp
index 65d109e..1199f75 100644
--- a/clang/lib/Lex/HeaderSearch.cpp
+++ b/clang/lib/Lex/HeaderSearch.cpp
@@ -1568,6 +1568,16 @@ HeaderSearch::lookupModuleMapFile(const DirectoryEntry *Dir, bool IsFramework) {
llvm::sys::path::append(ModuleMapFileName, "module.map");
if (auto F = FileMgr.getFile(ModuleMapFileName))
return *F;
+
+ // For frameworks, allow to have a private module map with a preferred
+ // spelling when a public module map is absent.
+ if (IsFramework) {
+ ModuleMapFileName = Dir->getName();
+ llvm::sys::path::append(ModuleMapFileName, "Modules",
+ "module.private.modulemap");
+ if (auto F = FileMgr.getFile(ModuleMapFileName))
+ return *F;
+ }
return nullptr;
}