Browse Source

Added error handling for CompilationDatabase

merge-requests/37/head
eidheim 8 years ago
parent
commit
684657732b
  1. 10
      src/compilation_database.cc
  2. 3
      src/compilation_database.h

10
src/compilation_database.cc

@ -2,13 +2,13 @@
#include <exception> #include <exception>
clangmm::CompilationDatabase::CompilationDatabase(const std::string &project_path) { clangmm::CompilationDatabase::CompilationDatabase(const std::string &project_path) {
CXCompilationDatabase_Error error; cx_db = clang_CompilationDatabase_fromDirectory(project_path.c_str(), &cx_db_error);
cx_db = clang_CompilationDatabase_fromDirectory(project_path.c_str(), &error);
if(error) {
//TODO: compile_commands.json is missing, create it?
}
} }
clangmm::CompilationDatabase::~CompilationDatabase() { clangmm::CompilationDatabase::~CompilationDatabase() {
clang_CompilationDatabase_dispose(cx_db); clang_CompilationDatabase_dispose(cx_db);
} }
clangmm::CompilationDatabase::operator bool() const {
return !static_cast<bool>(cx_db_error);
}

3
src/compilation_database.h

@ -6,10 +6,13 @@
namespace clangmm { namespace clangmm {
class CompilationDatabase { class CompilationDatabase {
CXCompilationDatabase_Error cx_db_error;
public: public:
explicit CompilationDatabase(const std::string &project_path); explicit CompilationDatabase(const std::string &project_path);
~CompilationDatabase(); ~CompilationDatabase();
operator bool() const;
CXCompilationDatabase cx_db; CXCompilationDatabase cx_db;
}; };
} }

Loading…
Cancel
Save