10b57cec5SDimitry Andric //===-- ModuleDependencyCollector.h -----------------------------*- C++ -*-===// 20b57cec5SDimitry Andric // 30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 60b57cec5SDimitry Andric // 70b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 80b57cec5SDimitry Andric 95ffd83dbSDimitry Andric #ifndef LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_MODULEDEPENDENCYCOLLECTOR_H 105ffd83dbSDimitry Andric #define LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_MODULEDEPENDENCYCOLLECTOR_H 110b57cec5SDimitry Andric 120b57cec5SDimitry Andric #include "clang/Frontend/Utils.h" 130b57cec5SDimitry Andric #include "llvm/ADT/StringRef.h" 149dba64beSDimitry Andric #include "llvm/Support/FileCollector.h" 150b57cec5SDimitry Andric 160b57cec5SDimitry Andric namespace lldb_private { 170b57cec5SDimitry Andric class ModuleDependencyCollectorAdaptor 180b57cec5SDimitry Andric : public clang::ModuleDependencyCollector { 190b57cec5SDimitry Andric public: ModuleDependencyCollectorAdaptor(std::shared_ptr<llvm::FileCollectorBase> file_collector)209dba64beSDimitry Andric ModuleDependencyCollectorAdaptor( 21*e8d8bef9SDimitry Andric std::shared_ptr<llvm::FileCollectorBase> file_collector) 220b57cec5SDimitry Andric : clang::ModuleDependencyCollector(""), m_file_collector(file_collector) { 230b57cec5SDimitry Andric } 240b57cec5SDimitry Andric 250b57cec5SDimitry Andric void addFile(llvm::StringRef Filename, 260b57cec5SDimitry Andric llvm::StringRef FileDst = {}) override { 279dba64beSDimitry Andric if (m_file_collector) 289dba64beSDimitry Andric m_file_collector->addFile(Filename); 290b57cec5SDimitry Andric } 300b57cec5SDimitry Andric insertSeen(llvm::StringRef Filename)310b57cec5SDimitry Andric bool insertSeen(llvm::StringRef Filename) override { return false; } addFileMapping(llvm::StringRef VPath,llvm::StringRef RPath)320b57cec5SDimitry Andric void addFileMapping(llvm::StringRef VPath, llvm::StringRef RPath) override {} writeFileMap()330b57cec5SDimitry Andric void writeFileMap() override {} 340b57cec5SDimitry Andric 350b57cec5SDimitry Andric private: 36*e8d8bef9SDimitry Andric std::shared_ptr<llvm::FileCollectorBase> m_file_collector; 370b57cec5SDimitry Andric }; 380b57cec5SDimitry Andric } // namespace lldb_private 390b57cec5SDimitry Andric 400b57cec5SDimitry Andric #endif 41