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