blob: 1ed09d275cad91de9feba0746f72db534a718ee4 [file] [log] [blame]
kjellander@webrtc.org94a23f02016-03-17 12:05:36 +01001include_rules = [
Mirko Bonadeia418e672018-10-24 13:57:25 +02002 "-audio",
3 "-base",
4 "-build",
5 "-buildtools",
6 "-build_overrides",
7 "-call",
8 "-common_audio",
9 "-common_video",
10 "-data",
11 "-examples",
12 "-infra",
13 "-logging",
14 "-media",
15 "-modules",
16 "-out",
17 "-p2p",
18 "-pc",
19 "-resources",
20 "-rtc_base",
21 "-rtc_tools",
22 "-sdk",
23 "-stats",
24 "-style-guide",
25 "-system_wrappers",
26 "-test",
27 "-testing",
28 "-third_party",
29 "-tools",
30 "-tools_webrtc",
31 "-video",
32 "-external/webrtc/webrtc", # Android platform build.
33 "-libyuv",
34 "-common_types.h",
35 "-WebRTC",
kjellander@webrtc.org94a23f02016-03-17 12:05:36 +010036]
37
38specific_include_rules = {
Mirko Bonadeia418e672018-10-24 13:57:25 +020039 # Some internal headers are allowed even in API headers:
40 ".*\.h": [
41 "+rtc_base/checks.h",
42 "+rtc_base/system/rtc_export.h",
43 ],
44
45 "array_view\.h": [
46 "+rtc_base/type_traits.h",
47 ],
48
kwiberg96da0112017-06-30 04:23:22 -070049 # Needed because AudioEncoderOpus is in the wrong place for
50 # backwards compatibilty reasons. See
51 # https://bugs.chromium.org/p/webrtc/issues/detail?id=7847
52 "audio_encoder_opus\.h": [
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020053 "+modules/audio_coding/codecs/opus/audio_encoder_opus.h",
kwiberg96da0112017-06-30 04:23:22 -070054 ],
55
Mirko Bonadeia418e672018-10-24 13:57:25 +020056 "asyncresolverfactory\.h": [
57 "+rtc_base/asyncresolverinterface.h",
58 ],
59
60 "candidate\.h": [
61 "+rtc_base/network_constants.h",
62 "+rtc_base/socketaddress.h",
63 ],
64
65 "datachannelinterface\.h": [
66 "+rtc_base/copyonwritebuffer.h",
67 "+rtc_base/refcount.h",
68 ],
69
70 "dtmfsenderinterface\.h": [
71 "+rtc_base/refcount.h",
72 ],
73
74 "fec_controller\.h": [
75 "+modules/include/module_fec_types.h",
76 ],
77
78 "jsep\.h": [
79 "+rtc_base/refcount.h",
80 ],
81
82 "jsepicecandidate\.h": [
83 "+rtc_base/constructormagic.h",
84 ],
85
86 "jsepsessiondescription\.h": [
87 "+rtc_base/constructormagic.h",
88 ],
89
90 "mediastreaminterface\.h": [
91 "+modules/audio_processing/include/audio_processing_statistics.h",
92 "+rtc_base/refcount.h",
93 "+rtc_base/scoped_ref_ptr.h",
94 ],
95
96 "peerconnectionfactoryproxy\.h": [
97 "+rtc_base/bind.h",
98 ],
99
100 "refcountedbase\.h": [
101 "+rtc_base/constructormagic.h",
102 "+rtc_base/refcount.h",
103 "+rtc_base/refcounter.h",
104 ],
105
106 "rtcerror\.h": [
107 "+rtc_base/logging.h",
108 ],
109
110 "rtpreceiverinterface\.h": [
111 "+rtc_base/refcount.h",
112 "+rtc_base/scoped_ref_ptr.h",
113 ],
114
115 "rtpsenderinterface\.h": [
116 "+rtc_base/refcount.h",
117 "+rtc_base/scoped_ref_ptr.h",
118 ],
119
120 "rtptransceiverinterface\.h": [
121 "+rtc_base/refcount.h",
122 ],
123
124 "setremotedescriptionobserverinterface\.h": [
125 "+rtc_base/refcount.h",
126 ],
127
128 "statstypes\.h": [
129 "+rtc_base/constructormagic.h",
130 "+rtc_base/refcount.h",
131 "+rtc_base/scoped_ref_ptr.h",
132 "+rtc_base/stringencode.h",
133 "+rtc_base/thread_checker.h",
134 ],
135
136 "umametrics\.h": [
137 "+rtc_base/refcount.h",
138 ],
139
140 "audio_frame\.h": [
141 "+rtc_base/constructormagic.h",
142 ],
143
144 "audio_mixer\.h": [
145 "+rtc_base/refcount.h",
146 ],
147
148 "audio_decoder\.h": [
149 "+rtc_base/buffer.h",
150 "+rtc_base/constructormagic.h",
151 ],
152
153 "audio_decoder_factory\.h": [
154 "+rtc_base/refcount.h",
155 ],
156
157 "audio_decoder_factory_template\.h": [
158 "+rtc_base/refcountedobject.h",
159 "+rtc_base/scoped_ref_ptr.h",
160 ],
161
162 "audio_encoder\.h": [
163 "+rtc_base/buffer.h",
164 "+rtc_base/deprecation.h",
165 ],
166
167 "audio_encoder_factory\.h": [
168 "+rtc_base/refcount.h",
169 ],
170
171 "audio_encoder_factory_template\.h": [
172 "+rtc_base/refcountedobject.h",
173 "+rtc_base/scoped_ref_ptr.h",
174 ],
175
176 "builtin_audio_decoder_factory\.h": [
177 "+rtc_base/scoped_ref_ptr.h",
178 ],
179
180 "builtin_audio_encoder_factory\.h": [
181 "+rtc_base/scoped_ref_ptr.h",
182 ],
183
184 "framedecryptorinterface\.h": [
185 "+rtc_base/refcount.h",
186 ],
187
188 "frameencryptorinterface\.h": [
189 "+rtc_base/refcount.h",
190 ],
191
192 "ortcfactoryinterface\.h": [
193 "+rtc_base/network.h",
194 "+rtc_base/scoped_ref_ptr.h",
195 "+rtc_base/thread.h",
196 ],
197
198 "udptransportinterface\.h": [
199 "+rtc_base/socketaddress.h",
200 ],
201
202 "rtcstatscollectorcallback\.h": [
203 "+rtc_base/refcount.h",
204 "+rtc_base/scoped_ref_ptr.h",
205 ],
206
207 "rtcstatsreport\.h": [
208 "+rtc_base/refcount.h",
209 "+rtc_base/refcountedobject.h",
210 "+rtc_base/scoped_ref_ptr.h",
211 ],
212
213 "audioproc_float\.h": [
214 "+modules/audio_processing/include/audio_processing.h",
215 ],
216
217 "fake_frame_decryptor\.h": [
218 "+rtc_base/refcountedobject.h",
219 ],
220
221 "fake_frame_encryptor\.h": [
222 "+rtc_base/refcountedobject.h",
223 ],
224
225 "fakeconstraints\.h": [
226 "+rtc_base/stringencode.h",
227 ],
228
229 "mock.*\.h": [
230 "+test/gmock.h",
231 ],
232
233 "simulated_network\.h": [
234 "+rtc_base/criticalsection.h",
235 "+rtc_base/random.h",
236 "+rtc_base/thread_annotations.h",
237 ],
238
239 "test_dependency_factory\.h": [
240 "+rtc_base/thread_checker.h",
241 ],
242
243 "videocodec_test_fixture\.h": [
244 "+modules/video_coding/include/video_codec_interface.h"
245 ],
246
247 "data_rate\.h": [
248 "+rtc_base/numerics/safe_conversions.h",
249 ],
250
251 "data_size\.h": [
252 "+rtc_base/numerics/safe_conversions.h",
253 ],
254
255 "time_delta\.h": [
256 "+rtc_base/numerics/safe_conversions.h",
257 ],
258
259 "timestamp\.h": [
260 "+rtc_base/numerics/safe_conversions.h",
261 ],
262
263 "i010_buffer\.h": [
264 "+rtc_base/memory/aligned_malloc.h"
265 ],
266
267 "i420_buffer\.h": [
268 "+rtc_base/memory/aligned_malloc.h",
269 ],
270
271 "video_frame_buffer\.h": [
272 "+rtc_base/refcount.h",
273 "+rtc_base/scoped_ref_ptr.h",
274 ],
275
276 "video_timing\.h": [
277 "+rtc_base/numerics/safe_conversions.h",
278 ],
279
280 "video_encoder_config\.h": [
281 "+rtc_base/refcount.h",
282 "+rtc_base/scoped_ref_ptr.h",
283 ],
284
kwiberg087bd342017-02-10 08:15:44 -0800285 # We allow .cc files in webrtc/api/ to #include a bunch of stuff
286 # that's off-limits for the .h files. That's because .h files leak
287 # their #includes to whoever's #including them, but .cc files do not
288 # since no one #includes them.
289 ".*\.cc": [
Mirko Bonadeia418e672018-10-24 13:57:25 +0200290 "+audio",
291 "+call",
292 "+common_audio",
293 "+common_video",
294 "+examples",
295 "+logging",
296 "+media",
297 "+modules",
298 "+p2p",
299 "+pc",
300 "+rtc_base",
301 "+rtc_tools",
302 "+sdk",
303 "+stats",
304 "+system_wrappers",
305 "+test",
306 "+tools",
307 "+tools_webrtc",
308 "+video",
309 "+third_party",
kwiberg1e4e8cb2017-01-31 01:48:08 -0800310 ],
kjellander@webrtc.org94a23f02016-03-17 12:05:36 +0100311}