xref: /openbsd-src/gnu/llvm/lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h (revision be691f3bb6417f04a68938fadbcaee2d5795e764)
1061da546Spatrick //===-- ModuleDependencyCollector.h -----------------------------*- C++ -*-===//
2061da546Spatrick //
3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information.
5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6061da546Spatrick //
7061da546Spatrick //===----------------------------------------------------------------------===//
8061da546Spatrick 
9dda28197Spatrick #ifndef LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_MODULEDEPENDENCYCOLLECTOR_H
10dda28197Spatrick #define LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_MODULEDEPENDENCYCOLLECTOR_H
11061da546Spatrick 
12061da546Spatrick #include "clang/Frontend/Utils.h"
13061da546Spatrick #include "llvm/ADT/StringRef.h"
14061da546Spatrick #include "llvm/Support/FileCollector.h"
15061da546Spatrick 
16061da546Spatrick namespace lldb_private {
17061da546Spatrick class ModuleDependencyCollectorAdaptor
18061da546Spatrick     : public clang::ModuleDependencyCollector {
19061da546Spatrick public:
ModuleDependencyCollectorAdaptor(std::shared_ptr<llvm::FileCollectorBase> file_collector)20061da546Spatrick   ModuleDependencyCollectorAdaptor(
21*be691f3bSpatrick       std::shared_ptr<llvm::FileCollectorBase> file_collector)
22061da546Spatrick       : clang::ModuleDependencyCollector(""), m_file_collector(file_collector) {
23061da546Spatrick   }
24061da546Spatrick 
25061da546Spatrick   void addFile(llvm::StringRef Filename,
26061da546Spatrick                llvm::StringRef FileDst = {}) override {
27061da546Spatrick     if (m_file_collector)
28061da546Spatrick       m_file_collector->addFile(Filename);
29061da546Spatrick   }
30061da546Spatrick 
insertSeen(llvm::StringRef Filename)31061da546Spatrick   bool insertSeen(llvm::StringRef Filename) override { return false; }
addFileMapping(llvm::StringRef VPath,llvm::StringRef RPath)32061da546Spatrick   void addFileMapping(llvm::StringRef VPath, llvm::StringRef RPath) override {}
writeFileMap()33061da546Spatrick   void writeFileMap() override {}
34061da546Spatrick 
35061da546Spatrick private:
36*be691f3bSpatrick   std::shared_ptr<llvm::FileCollectorBase> m_file_collector;
37061da546Spatrick };
38061da546Spatrick } // namespace lldb_private
39061da546Spatrick 
40061da546Spatrick #endif
41