diff --git a/src/compilation_database.cc b/src/compilation_database.cc index 2df8170..f12659c 100644 --- a/src/compilation_database.cc +++ b/src/compilation_database.cc @@ -2,13 +2,13 @@ #include clangmm::CompilationDatabase::CompilationDatabase(const std::string &project_path) { - CXCompilationDatabase_Error error; - cx_db = clang_CompilationDatabase_fromDirectory(project_path.c_str(), &error); - if(error) { - //TODO: compile_commands.json is missing, create it? - } + cx_db = clang_CompilationDatabase_fromDirectory(project_path.c_str(), &cx_db_error); } clangmm::CompilationDatabase::~CompilationDatabase() { clang_CompilationDatabase_dispose(cx_db); } + +clangmm::CompilationDatabase::operator bool() const { + return !static_cast(cx_db_error); +} diff --git a/src/compilation_database.h b/src/compilation_database.h index c724ae5..b884b2e 100644 --- a/src/compilation_database.h +++ b/src/compilation_database.h @@ -6,9 +6,12 @@ namespace clangmm { class CompilationDatabase { + CXCompilationDatabase_Error cx_db_error; public: explicit CompilationDatabase(const std::string &project_path); ~CompilationDatabase(); + + operator bool() const; CXCompilationDatabase cx_db; };