- DiagnosticOptions diagnosticOptions;
- TextDiagnosticPrinter *tdp = new TextDiagnosticPrinter(llvm::outs(), diagnosticOptions);
- DiagnosticClient *dc;
- llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs> dis;
- Diagnostic diag(dis,dc);
- LangOptions lang;
-
- FileSystemOptions fileSysOpt;
- FileManager fm (fileSysOpt);
-
- SourceManager sm ( diag, fm);
- HeaderSearch *headers = new HeaderSearch(fm);
-
- HeaderSearchOptions hsopts;
- TargetOptions to;
-
- //init.AddDefaultSystemIncludePaths(lang);
- //init.Realize();
- TargetInfo *ti = TargetInfo::CreateTargetInfo(diag, to);
- Preprocessor *pp = new Preprocessor(diag, lang, *ti, sm, *headers);
- FrontendOptions f;
- PreprocessorOptions ppio;
- InitializePreprocessor(*pp, ppio,hsopts,f);
-
- const FileEntry *file = fm.getFile("test.cpp");
+ clang::DiagnosticOptions diagnosticOptions;
+ clang::TextDiagnosticPrinter *tdp = new clang::TextDiagnosticPrinter(llvm::nulls(), diagnosticOptions);
+ llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs> dis(new clang::DiagnosticIDs());
+ clang::Diagnostic diag(dis,tdp);
+ clang::LangOptions lang;
+ lang.BCPLComment=1;
+ lang.CPlusPlus=1;
+ clang::FileSystemOptions fileSysOpt;
+ clang::FileManager fm (fileSysOpt);
+
+ clang::SourceManager sm ( diag, fm);
+ clang::HeaderSearch *headers = new clang::HeaderSearch(fm);
+ clang::CompilerInvocation::setLangDefaults(lang, clang::IK_ObjCXX);
+
+ clang::HeaderSearchOptions hsopts;
+ hsopts.ResourceDir="/usr/local/lib/clang/2.9/";
+ /*hsopts.AddPath("/usr/include/linux",
+ clang::frontend::Angled,
+ false,
+ false,
+ false);
+ hsopts.AddPath("/usr/include/c++/4.4",
+ clang::frontend::Angled,
+ false,
+ false,
+ false);
+ hsopts.AddPath("/usr/include/c++/4.4/tr1",
+ clang::frontend::Angled,
+ false,
+ false,
+ false);
+
+ hsopts.AddPath("/home/petr/Dokumenty/BOOST/boost_1_44_0",
+ clang::frontend::Angled,
+ false,
+ false,
+ false);
+ hsopts.AddPath("/usr/include/c++/4.4/i686-linux-gnu",
+ clang::frontend::Angled,
+ false,
+ false,
+ false);*/
+ clang::TargetOptions to;
+ to.Triple = llvm::sys::getHostTriple();
+ clang::TargetInfo *ti = clang::TargetInfo::CreateTargetInfo(diag, to);
+ clang::ApplyHeaderSearchOptions(
+ *headers,
+ hsopts,
+ lang,
+ ti->getTriple());
+
+
+ clang::Preprocessor pp(diag, lang, *ti, sm, *headers);
+ clang::FrontendOptions f;
+ clang::PreprocessorOptions ppio;
+ clang::InitializePreprocessor(pp, ppio,hsopts,f);
+ const clang::FileEntry *file = fm.getFile("test.cpp");