//===- DependencyScanningTool.h - clang-scan-deps service -----------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_TOOLING_DEPENDENCYSCANNING_DEPENDENCYSCANNINGTOOL_H #define LLVM_CLANG_TOOLING_DEPENDENCYSCANNING_DEPENDENCYSCANNINGTOOL_H #include "clang/Tooling/DependencyScanning/DependencyScanningService.h" #include "clang/Tooling/DependencyScanning/DependencyScanningWorker.h" #include "clang/Tooling/DependencyScanning/ModuleDepCollector.h" #include "clang/Tooling/JSONCompilationDatabase.h" #include "llvm/ADT/DenseSet.h" #include "llvm/ADT/MapVector.h" #include <optional> #include <string> #include <vector> namespace clang { namespace tooling { namespace dependencies { /// A callback to lookup module outputs for "-fmodule-file=", "-o" etc. LookupModuleOutputCallback; /// Graph of modular dependencies. ModuleDepsGraph; /// The full dependencies and module graph for a specific input. struct TranslationUnitDeps { … }; struct P1689Rule { … }; /// The high-level implementation of the dependency discovery tool that runs on /// an individual worker thread. class DependencyScanningTool { … }; class FullDependencyConsumer : public DependencyConsumer { … }; /// A simple dependency action controller that uses a callback. If no callback /// is provided, it is assumed that looking up module outputs is unreachable. class CallbackActionController : public DependencyActionController { … }; } // end namespace dependencies } // end namespace tooling } // end namespace clang #endif // LLVM_CLANG_TOOLING_DEPENDENCYSCANNING_DEPENDENCYSCANNINGTOOL_H