1module Clang_Analysis {
2  requires cplusplus
3  umbrella "Analysis"
4
5  textual header "Analysis/Analyses/ThreadSafetyOps.def"
6
7  module * { export * }
8
9  // FIXME: Exclude these headers to avoid pulling all of the AST matchers
10  // library into clang. Due to inline key functions in the headers,
11  // importing the AST matchers library gives a link dependency on the AST
12  // matchers (and thus the AST), which clang-format should not have.
13  exclude header "Analysis/Analyses/ExprMutationAnalyzer.h"
14}
15
16module Clang_AST {
17  requires cplusplus
18  umbrella "AST"
19
20  textual header "AST/BuiltinTypes.def"
21  textual header "AST/CXXRecordDeclDefinitionBits.def"
22  textual header "AST/OperationKinds.def"
23  textual header "AST/TypeLocNodes.def"
24
25  module * { export * }
26}
27
28module Clang_ASTMatchers { requires cplusplus umbrella "ASTMatchers" module * { export * } }
29
30module Clang_Basic {
31  requires cplusplus
32  umbrella "Basic"
33
34  textual header "Basic/AArch64SVEACLETypes.def"
35  textual header "Basic/BuiltinsAArch64.def"
36  textual header "Basic/BuiltinsAMDGPU.def"
37  textual header "Basic/BuiltinsARM.def"
38  textual header "Basic/BuiltinsBPF.def"
39  textual header "Basic/Builtins.def"
40  textual header "Basic/BuiltinsHexagon.def"
41  textual header "Basic/BuiltinsHexagonDep.def"
42  textual header "Basic/BuiltinsHexagonMapCustomDep.def"
43  textual header "Basic/BuiltinsMips.def"
44  textual header "Basic/BuiltinsNEON.def"
45  textual header "Basic/BuiltinsNVPTX.def"
46  textual header "Basic/BuiltinsPPC.def"
47  textual header "Basic/BuiltinsRISCV.def"
48  textual header "Basic/BuiltinsSVE.def"
49  textual header "Basic/BuiltinsSystemZ.def"
50  textual header "Basic/BuiltinsWebAssembly.def"
51  textual header "Basic/BuiltinsX86.def"
52  textual header "Basic/BuiltinsX86_64.def"
53  textual header "Basic/BuiltinsXCore.def"
54  textual header "Basic/CodeGenOptions.def"
55  textual header "Basic/DiagnosticOptions.def"
56  textual header "Basic/Features.def"
57  textual header "Basic/FPOptions.def"
58  textual header "Basic/MSP430Target.def"
59  textual header "Basic/LangOptions.def"
60  textual header "Basic/OpenCLExtensions.def"
61  textual header "Basic/OpenCLImageTypes.def"
62  textual header "Basic/OpenCLExtensionTypes.def"
63  textual header "Basic/OpenMPKinds.def"
64  textual header "Basic/OperatorKinds.def"
65  textual header "Basic/PPCTypes.def"
66  textual header "Basic/RISCVVTypes.def"
67  textual header "Basic/Sanitizers.def"
68  textual header "Basic/TargetCXXABI.def"
69  textual header "Basic/TokenKinds.def"
70  textual header "Basic/X86Target.def"
71
72  module * { export * }
73}
74
75module Clang_CodeGen { requires cplusplus umbrella "CodeGen" module * { export * } }
76module Clang_Config { requires cplusplus umbrella "Config" module * { export * } }
77
78// Files for diagnostic groups are spread all over the include/clang/ tree, but
79// logically form a single module.
80module Clang_Diagnostics {
81  requires cplusplus
82
83  module All { header "Basic/AllDiagnostics.h" export * }
84  module Analysis { header "Analysis/AnalysisDiagnostic.h" export * }
85  module AST { header "AST/ASTDiagnostic.h" export * }
86  module Comment { header "AST/CommentDiagnostic.h" export * }
87  module Driver { header "Driver/DriverDiagnostic.h" export * }
88  module Frontend { header "Frontend/FrontendDiagnostic.h" export * }
89  module Lex { header "Lex/LexDiagnostic.h" export * }
90  module Parse { header "Parse/ParseDiagnostic.h" export * }
91  module Sema { header "Sema/SemaDiagnostic.h" export * }
92  module Serialization { header "Serialization/SerializationDiagnostic.h" export * }
93  module Refactoring { header "Tooling/Refactoring/RefactoringDiagnostic.h" export * }
94}
95
96module Clang_Driver {
97  requires cplusplus
98  umbrella "Driver"
99
100  textual header "Driver/Types.def"
101
102  module * { export * }
103}
104
105module Clang_Edit { requires cplusplus umbrella "Edit" module * { export * } }
106module Clang_Format { requires cplusplus umbrella "Format" module * { export * } }
107
108module Clang_Frontend {
109  requires cplusplus
110  umbrella "Frontend"
111
112  textual header "Basic/LangStandards.def"
113
114  module * { export * }
115}
116
117module Clang_FrontendTool { requires cplusplus umbrella "FrontendTool" module * { export * } }
118module Clang_Index { requires cplusplus umbrella "Index" module * { export * } }
119module Clang_Lex { requires cplusplus umbrella "Lex" module * { export * } }
120module Clang_Parse { requires cplusplus umbrella "Parse" module * { export * } }
121module Clang_Rewrite { requires cplusplus umbrella "Rewrite/Core" module * { export * } }
122module Clang_RewriteFrontend { requires cplusplus umbrella "Rewrite/Frontend" module * { export * } }
123module Clang_Sema { requires cplusplus umbrella "Sema" module * { export * } }
124
125module Clang_Serialization {
126  requires cplusplus
127  umbrella "Serialization"
128
129  textual header "Serialization/TypeBitCodes.def"
130
131  module * { export * }
132}
133
134module Clang_StaticAnalyzer_Core {
135  requires cplusplus
136  umbrella "StaticAnalyzer/Core"
137
138  textual header "StaticAnalyzer/Core/Analyses.def"
139  textual header "StaticAnalyzer/Core/AnalyzerOptions.def"
140  textual header "StaticAnalyzer/Core/PathSensitive/SVals.def"
141  textual header "StaticAnalyzer/Core/PathSensitive/Symbols.def"
142  textual header "StaticAnalyzer/Core/PathSensitive/Regions.def"
143
144  module * { export * }
145}
146
147module Clang_StaticAnalyzer_Checkers {
148  requires cplusplus
149  umbrella "StaticAnalyzer/Checkers"
150  module * { export * }
151}
152
153module Clang_StaticAnalyzer_Frontend {
154  requires cplusplus
155  umbrella "StaticAnalyzer/Frontend"
156  module * { export * }
157}
158
159module Clang_Testing {
160  requires cplusplus
161  umbrella "Testing"
162  module * { export * }
163}
164
165module Clang_Tooling {
166  requires cplusplus umbrella "Tooling" module * { export * }
167  // FIXME: Exclude these headers to avoid pulling all of the AST matchers
168  // library into clang-format. Due to inline key functions in the headers,
169  // importing the AST matchers library gives a link dependency on the AST
170  // matchers (and thus the AST), which clang-format should not have.
171  exclude header "Tooling/RefactoringCallbacks.h"
172}
173
174module Clang_ToolingCore {
175  requires cplusplus
176  umbrella "Tooling/Core" module * { export * }
177}
178
179module Clang_ToolingInclusions {
180  requires cplusplus
181  umbrella "Tooling/Inclusions" module * { export * }
182}
183