diff --git a/compilation_database_loader.cc b/compilation_database_loader.cc index 8c6adabf..4264e334 100644 --- a/compilation_database_loader.cc +++ b/compilation_database_loader.cc @@ -14,11 +14,23 @@ bool EndsWith(const std::string& value, const std::string& ending) { return std::equal(ending.rbegin(), ending.rend(), value.rbegin()); } +bool StartsWith(const std::string& value, const std::string& start) { + return std::equal(start.begin(), start.end(), value.begin()); +} + std::vector LoadFromDirectoryListing(const std::string& project_directory) { std::vector result; - std::vector files = GetFilesInFolder(project_directory, false /*add_folder_to_path*/); + std::vector args; + for (const std::string& line : ReadLines(project_directory + "/clang_args")) { + if (line.empty() || StartsWith(line, "#")) + continue; + std::cerr << "Adding argument " << line << std::endl; + args.push_back(line); + } + + std::vector files = GetFilesInFolder(project_directory, true /*recursive*/, false /*add_folder_to_path*/); for (const std::string& file : files) { if (EndsWith(file, ".cc") || EndsWith(file, ".cpp") || EndsWith(file, ".c") || EndsWith(file, ".h") ||