project: allow absolute compilationDatabaseDirectory

Fix #466
This commit is contained in:
Fangrui Song 2019-08-16 19:34:11 -07:00
parent 0eebe0c1a9
commit 50d7fbc235

View File

@ -351,8 +351,12 @@ void Project::LoadDirectory(const std::string &root, Project::Folder &folder) {
folder.entries.clear(); folder.entries.clear();
if (g_config->compilationDatabaseCommand.empty()) { if (g_config->compilationDatabaseCommand.empty()) {
CDBDir = root; CDBDir = root;
if (g_config->compilationDatabaseDirectory.size()) if (g_config->compilationDatabaseDirectory.size()) {
sys::path::append(CDBDir, g_config->compilationDatabaseDirectory); if (sys::path::is_absolute(g_config->compilationDatabaseDirectory))
CDBDir = g_config->compilationDatabaseDirectory;
else
sys::path::append(CDBDir, g_config->compilationDatabaseDirectory);
}
sys::path::append(Path, CDBDir, "compile_commands.json"); sys::path::append(Path, CDBDir, "compile_commands.json");
} else { } else {
// If `compilationDatabaseCommand` is specified, execute it to get the // If `compilationDatabaseCommand` is specified, execute it to get the