clang 23.0.0git
DependencyConsumer.h
Go to the documentation of this file.
1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_CLANG_DEPENDENCYSCANNING_DEPENDENCYCONSUMER_H
10#define LLVM_CLANG_DEPENDENCYSCANNING_DEPENDENCYCONSUMER_H
11
12#include "clang/Basic/LLVM.h"
14
15#include <optional>
16#include <string>
17#include <vector>
18
19namespace clang::dependencies {
21public:
23
25 std::optional<P1689ModuleInfo> Provided,
26 std::vector<P1689ModuleInfo> Requires) {}
27
28 virtual void handleBuildCommand(Command Cmd) {}
29
30 virtual void
32
33 virtual void handleFileDependency(StringRef Filename) = 0;
34
36
37 virtual void handleModuleDependency(ModuleDeps MD) = 0;
38
40
41 virtual void handleVisibleModule(std::string ModuleName) = 0;
42
43 virtual void handleContextHash(std::string Hash) = 0;
44};
45} // namespace clang::dependencies
46
47#endif // LLVM_CLANG_DEPENDENCYSCANNING_DEPENDENCYCONSUMER_H
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
DependencyOutputOptions - Options for controlling the compiler dependency file generation.
virtual void handleBuildCommand(Command Cmd)
virtual void handleFileDependency(StringRef Filename)=0
virtual void handleDependencyOutputOpts(const DependencyOutputOptions &Opts)=0
virtual void handleModuleDependency(ModuleDeps MD)=0
virtual void handleVisibleModule(std::string ModuleName)=0
virtual void handlePrebuiltModuleDependency(PrebuiltModuleDep PMD)=0
virtual void handleDirectModuleDependency(ModuleID MD)=0
virtual void handleContextHash(std::string Hash)=0
virtual void handleProvidedAndRequiredStdCXXModules(std::optional< P1689ModuleInfo > Provided, std::vector< P1689ModuleInfo > Requires)
A command-line tool invocation that is part of building a TU.
This is used to identify a specific module.
Modular dependency that has already been built prior to the dependency scan.