#ifndef COATI_SOLUTIONPARSERCOMPILATIONDATABASE_H #define COATI_SOLUTIONPARSERCOMPILATIONDATABASE_H #include "utility/solution/ISolutionParser.h" #include #include class FilePath; namespace clang { namespace tooling { class JSONCompilationDatabase; } } class SolutionParserCompilationDatabase : public ISolutionParser { public: SolutionParserCompilationDatabase(); ~SolutionParserCompilationDatabase(); virtual std::string getSolutionName(); virtual std::vector getProjects(); virtual std::vector getProjectFiles(); virtual std::vector getProjectItems(); virtual std::vector getIncludePaths(); std::vector getFrameworkPaths(); void parseDatabase(); private: clang::tooling::JSONCompilationDatabase* getDatabase(); std::string getIncludePath(const std::string& argument, const std::string& dir); std::shared_ptr m_database; std::vector m_searchPaths; std::vector m_frameworkPaths; }; #endif //COATI_SOLUTIONPARSERCOMPILATIONDATABASE_H