diff options
author | Sam McCall <sam.mccall@gmail.com> | 2017-11-24 12:13:55 +0000 |
---|---|---|
committer | Sam McCall <sam.mccall@gmail.com> | 2017-11-24 12:13:55 +0000 |
commit | b50a36c8bc71a7c1ac9f47a08688ac7175684743 (patch) | |
tree | 991b7b66d6516f749c686edc81c66bb7e4f0a2b8 /clang/lib/Tooling/CompilationDatabase.cpp | |
parent | 70cec59e237fcd2d26da3e5994ed5572a87130d1 (diff) | |
download | bcm5719-llvm-b50a36c8bc71a7c1ac9f47a08688ac7175684743.tar.gz bcm5719-llvm-b50a36c8bc71a7c1ac9f47a08688ac7175684743.zip |
[Tooling] Acknowledge that many CompilationDatabases don't support enumeration.
Summary: Provide default implementations so that only getCompileCommands() is mandatory.
Reviewers: ioeric
Subscribers: cfe-commits, bkramer, klimek
Differential Revision: https://reviews.llvm.org/D40409
llvm-svn: 318943
Diffstat (limited to 'clang/lib/Tooling/CompilationDatabase.cpp')
-rw-r--r-- | clang/lib/Tooling/CompilationDatabase.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/clang/lib/Tooling/CompilationDatabase.cpp b/clang/lib/Tooling/CompilationDatabase.cpp index f252ef0b722..92b76b157dc 100644 --- a/clang/lib/Tooling/CompilationDatabase.cpp +++ b/clang/lib/Tooling/CompilationDatabase.cpp @@ -112,6 +112,15 @@ CompilationDatabase::autoDetectFromDirectory(StringRef SourceDir, return DB; } +std::vector<CompileCommand> CompilationDatabase::getAllCompileCommands() const { + std::vector<CompileCommand> Result; + for (const auto &File : getAllFiles()) { + auto C = getCompileCommands(File); + std::move(C.begin(), C.end(), std::back_inserter(Result)); + } + return Result; +} + CompilationDatabasePlugin::~CompilationDatabasePlugin() {} namespace { @@ -342,16 +351,6 @@ FixedCompilationDatabase::getCompileCommands(StringRef FilePath) const { return Result; } -std::vector<std::string> -FixedCompilationDatabase::getAllFiles() const { - return std::vector<std::string>(); -} - -std::vector<CompileCommand> -FixedCompilationDatabase::getAllCompileCommands() const { - return std::vector<CompileCommand>(); -} - namespace { class FixedCompilationDatabasePlugin : public CompilationDatabasePlugin { |