From 0a49d2d74457094217c0b42fd3ce91ec078d9510 Mon Sep 17 00:00:00 2001 From: Sam McCall Date: Fri, 24 Nov 2017 12:13:55 +0000 Subject: [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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@318943 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Tooling/CompilationDatabase.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'lib/Tooling/CompilationDatabase.cpp') diff --git a/lib/Tooling/CompilationDatabase.cpp b/lib/Tooling/CompilationDatabase.cpp index f252ef0b72..92b76b157d 100644 --- a/lib/Tooling/CompilationDatabase.cpp +++ b/lib/Tooling/CompilationDatabase.cpp @@ -112,6 +112,15 @@ CompilationDatabase::autoDetectFromDirectory(StringRef SourceDir, return DB; } +std::vector CompilationDatabase::getAllCompileCommands() const { + std::vector 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 -FixedCompilationDatabase::getAllFiles() const { - return std::vector(); -} - -std::vector -FixedCompilationDatabase::getAllCompileCommands() const { - return std::vector(); -} - namespace { class FixedCompilationDatabasePlugin : public CompilationDatabasePlugin { -- cgit v1.2.1