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