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 | 0a49d2d74457094217c0b42fd3ce91ec078d9510 (patch) | |
tree | 2d13735f4d997eee95604292209c787c762df785 /lib/Tooling/CompilationDatabase.cpp | |
parent | 6b3cbe94dcc5f1db2f0b6116c60caa5cadc9b539 (diff) | |
download | clang-0a49d2d74457094217c0b42fd3ce91ec078d9510.tar.gz |
[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
Diffstat (limited to 'lib/Tooling/CompilationDatabase.cpp')
-rw-r--r-- | lib/Tooling/CompilationDatabase.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
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<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 { |