28#include <clang/Basic/Diagnostic.h>
37class DiagnosticsEngine;
43 clang::DiagnosticsEngine::Level level = clang::DiagnosticsEngine::Note;
69std::vector<std::string>
71 const std::string &clangResourceDir,
72 std::string &diagnostic);
83std::unique_ptr<clang::ASTUnit>
85 const std::string &sourcePath, std::string &errorMessage,
86 const DiagnosticCallback &diagnosticCallback =
nullptr,
87 const std::string &clangResourceDirOverride =
"");
90bool saveAst(clang::ASTUnit &astUnit,
const std::string &outputPath,
91 std::string &errorMessage);
100std::unique_ptr<clang::ASTUnit>
101loadAstFromFile(
const std::string &astFilePath, std::string &errorMessage,
102 const std::string &compilationDbPath =
"",
103 const std::string &sourcePath =
"",
104 const DiagnosticCallback &diagnosticCallback =
nullptr);
112std::vector<std::string>
114 std::string &errorMessage);
std::vector< std::string > getSourceFilesFromCompilationDatabase(const std::string &compDbPath, std::string &errorMessage)
Extract source file paths from a compilation database.
std::unique_ptr< clang::ASTUnit > createAstFromCDB(const std::string &compilationDatabase, const std::string &sourcePath, std::string &errorMessage, const DiagnosticCallback &diagnosticCallback=nullptr, const std::string &clangResourceDirOverride="")
Create AST from a given compilation database This function provides a easy way to generate clang AST ...
bool saveAst(clang::ASTUnit &astUnit, const std::string &outputPath, std::string &errorMessage)
Save ast to local file.
std::string getClangResourceDir(const std::string &overrideResourceDir="")
Get clang resource directory.
std::unique_ptr< clang::ASTUnit > loadAstFromFile(const std::string &astFilePath, std::string &errorMessage, const std::string &compilationDbPath="", const std::string &sourcePath="", const DiagnosticCallback &diagnosticCallback=nullptr)
Load AST from local file.
std::vector< std::string > buildToolchainAdjustedCommandLine(const std::vector< std::string > &commandLine, const std::string &clangResourceDir, std::string &diagnostic)
Normalize a Clang command line for ACAV's embedded Clang.