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