void clang::ApplyHeaderSearchOptions(HeaderSearch &HS, const HeaderSearchOptions &HSOpts, const LangOptions &Lang, const llvm::Triple &Triple) { InitHeaderSearch Init(HS, HSOpts.Verbose, HSOpts.Sysroot); // Add the user defined entries. for (unsigned i = 0, e = HSOpts.UserEntries.size(); i != e; ++i) { const HeaderSearchOptions::Entry &E = HSOpts.UserEntries[i]; if (E.IgnoreSysRoot) { Init.AddUnmappedPath(E.Path, E.Group, E.IsFramework); } else { Init.AddPath(E.Path, E.Group, E.IsFramework); } } Init.AddDefaultIncludePaths(Lang, Triple, HSOpts); for (unsigned i = 0, e = HSOpts.SystemHeaderPrefixes.size(); i != e; ++i) Init.AddSystemHeaderPrefix(HSOpts.SystemHeaderPrefixes[i].Prefix, HSOpts.SystemHeaderPrefixes[i].IsSystemHeader); if (HSOpts.UseBuiltinIncludes) { // Set up the builtin include directory in the module map. SmallString<128> P = StringRef(HSOpts.ResourceDir); llvm::sys::path::append(P, "include"); if (const DirectoryEntry *Dir = HS.getFileMgr().getDirectory(P.str())) HS.getModuleMap().setBuiltinIncludeDir(Dir); } Init.Realize(Lang); }
void clang::ApplyHeaderSearchOptions(HeaderSearch &HS, const HeaderSearchOptions &HSOpts, const LangOptions &Lang, const llvm::Triple &Triple) { InitHeaderSearch Init(HS, HSOpts.Verbose, HSOpts.Sysroot); // Add the user defined entries. for (unsigned i = 0, e = HSOpts.UserEntries.size(); i != e; ++i) { const HeaderSearchOptions::Entry &E = HSOpts.UserEntries[i]; Init.AddPath(E.Path, E.Group, !E.ImplicitExternC, E.IsUserSupplied, E.IsFramework, E.IgnoreSysRoot); } Init.AddDefaultIncludePaths(Lang, Triple, HSOpts); for (unsigned i = 0, e = HSOpts.SystemHeaderPrefixes.size(); i != e; ++i) Init.AddSystemHeaderPrefix(HSOpts.SystemHeaderPrefixes[i].Prefix, HSOpts.SystemHeaderPrefixes[i].IsSystemHeader); if (HSOpts.UseBuiltinIncludes) { // Set up the builtin include directory in the module map. llvm::sys::Path P(HSOpts.ResourceDir); P.appendComponent("include"); if (const DirectoryEntry *Dir = HS.getFileMgr().getDirectory(P.str())) HS.getModuleMap().setBuiltinIncludeDir(Dir); } Init.Realize(Lang); }