blob: 5a5c2858565dc1bc708ca3c886725dc0154dc2e6 [file] [log] [blame]
Mirko Bonadei90490372018-10-26 11:17:471# This is supposed to be a complete list of top-level directories,
2# excepting only api/ itself.
kjellander@webrtc.org94a23f02016-03-17 11:05:363include_rules = [
Mirko Bonadeia418e672018-10-24 11:57:254 "-audio",
5 "-base",
6 "-build",
7 "-buildtools",
8 "-build_overrides",
9 "-call",
10 "-common_audio",
11 "-common_video",
12 "-data",
13 "-examples",
Emil Lundmark64a33f22022-09-21 13:20:2214 "-experiments",
Artem Titov6512af02021-03-01 16:30:2915 "-g3doc",
Mirko Bonadei583d6d92018-10-24 13:53:3316 "-ios",
Mirko Bonadeia418e672018-10-24 11:57:2517 "-infra",
18 "-logging",
19 "-media",
Victor Boivie7d3c49a2021-03-25 12:11:0320 "-net",
Mirko Bonadeia418e672018-10-24 11:57:2521 "-modules",
22 "-out",
23 "-p2p",
24 "-pc",
25 "-resources",
26 "-rtc_base",
27 "-rtc_tools",
28 "-sdk",
29 "-stats",
30 "-style-guide",
31 "-system_wrappers",
32 "-test",
33 "-testing",
34 "-third_party",
35 "-tools",
36 "-tools_webrtc",
37 "-video",
38 "-external/webrtc/webrtc", # Android platform build.
39 "-libyuv",
40 "-common_types.h",
41 "-WebRTC",
kjellander@webrtc.org94a23f02016-03-17 11:05:3642]
43
44specific_include_rules = {
Mirko Bonadeia418e672018-10-24 11:57:2545 # Some internal headers are allowed even in API headers:
Vojin Ilic504fc192021-05-31 12:02:2846
47 "call_factory_interface\.h": [
48 "+call/rtp_transport_controller_send_factory_interface.h",
49 ],
50
Mirko Bonadeia418e672018-10-24 11:57:2551 ".*\.h": [
52 "+rtc_base/checks.h",
53 "+rtc_base/system/rtc_export.h",
Mirko Bonadei054f1852019-11-04 15:31:0854 "+rtc_base/system/rtc_export_template.h",
Sebastian Jansson72bba622018-11-19 10:17:1255 "+rtc_base/units/unit_base.h",
Mirko Bonadeia418e672018-10-24 11:57:2556 ],
57
58 "array_view\.h": [
59 "+rtc_base/type_traits.h",
60 ],
61
kwiberg96da0112017-06-30 11:23:2262 # Needed because AudioEncoderOpus is in the wrong place for
63 # backwards compatibilty reasons. See
64 # https://bugs.chromium.org/p/webrtc/issues/detail?id=7847
65 "audio_encoder_opus\.h": [
Mirko Bonadei92ea95e2017-09-15 04:47:3166 "+modules/audio_coding/codecs/opus/audio_encoder_opus.h",
kwiberg96da0112017-06-30 11:23:2267 ],
68
Steve Anton10542f22019-01-11 17:11:0069 "async_resolver_factory\.h": [
70 "+rtc_base/async_resolver_interface.h",
Mirko Bonadeia418e672018-10-24 11:57:2571 ],
72
Harald Alvestrande6e2f282021-03-24 12:13:2873 "async_dns_resolver\.h": [
74 "+rtc_base/socket_address.h",
75 ],
76
Mirko Bonadeia418e672018-10-24 11:57:2577 "candidate\.h": [
78 "+rtc_base/network_constants.h",
Steve Anton10542f22019-01-11 17:11:0079 "+rtc_base/socket_address.h",
Mirko Bonadeia418e672018-10-24 11:57:2580 ],
81
Steve Anton10542f22019-01-11 17:11:0082 "data_channel_interface\.h": [
83 "+rtc_base/copy_on_write_buffer.h",
Mirko Bonadeia418e672018-10-24 11:57:2584 ],
85
Bjorn A Mellem05497f22019-08-01 17:48:2086 "data_channel_transport_interface\.h": [
87 "+rtc_base/copy_on_write_buffer.h",
88 ],
89
Steve Anton10542f22019-01-11 17:11:0090 "dtls_transport_interface\.h": [
Harald Alvestrand7061e512019-04-10 15:20:4291 "+rtc_base/ssl_certificate.h",
Harald Alvestrandad88c882018-11-28 15:47:4692 ],
93
Mirko Bonadeia418e672018-10-24 11:57:2594 "fec_controller\.h": [
95 "+modules/include/module_fec_types.h",
96 ],
97
Steve Anton10542f22019-01-11 17:11:0098 "media_stream_interface\.h": [
Mirko Bonadeia418e672018-10-24 11:57:2599 "+modules/audio_processing/include/audio_processing_statistics.h",
Mirko Bonadeia418e672018-10-24 11:57:25100 ],
101
Patrik Höglund662e31f2019-09-05 12:35:04102 "packet_socket_factory\.h": [
103 "+rtc_base/proxy_info.h",
104 "+rtc_base/async_packet_socket.h",
105 ],
106
Steve Anton10542f22019-01-11 17:11:00107 "peer_connection_interface\.h": [
Vojin Ilic504fc192021-05-31 12:02:28108 "+call/rtp_transport_controller_send_factory_interface.h",
Steve Anton10542f22019-01-11 17:11:00109 "+media/base/media_config.h",
Steve Anton10542f22019-01-11 17:11:00110 "+media/base/media_engine.h",
Harald Alvestrandf33f7a22021-05-09 14:58:57111 "+p2p/base/port.h",
Steve Anton10542f22019-01-11 17:11:00112 "+p2p/base/port_allocator.h",
Harald Alvestrandf33f7a22021-05-09 14:58:57113 "+rtc_base/network.h",
114 "+rtc_base/network_constants.h",
Taylor Brandstetter239ac8a2020-07-31 23:07:52115 "+rtc_base/network_monitor_factory.h",
Steve Anton10542f22019-01-11 17:11:00116 "+rtc_base/rtc_certificate.h",
117 "+rtc_base/rtc_certificate_generator.h",
118 "+rtc_base/socket_address.h",
119 "+rtc_base/ssl_certificate.h",
120 "+rtc_base/ssl_stream_adapter.h",
Harald Alvestrandf33f7a22021-05-09 14:58:57121 "+rtc_base/thread.h",
Steve Antonbba675d2018-12-27 19:15:19122 ],
123
Yves Gerey3e707812018-11-28 15:47:49124 "proxy\.h": [
Steve Antonbba675d2018-12-27 19:15:19125 "+rtc_base/event.h",
Steve Anton10542f22019-01-11 17:11:00126 "+rtc_base/message_handler.h", # Inherits from it.
Steve Antonbba675d2018-12-27 19:15:19127 "+rtc_base/thread.h",
Yves Gerey3e707812018-11-28 15:47:49128 ],
129
Steve Anton10542f22019-01-11 17:11:00130 "ref_counted_base\.h": [
Steve Anton10542f22019-01-11 17:11:00131 "+rtc_base/ref_counter.h",
Mirko Bonadeia418e672018-10-24 11:57:25132 ],
133
Steve Anton10542f22019-01-11 17:11:00134 "rtc_error\.h": [
Mirko Bonadeia418e672018-10-24 11:57:25135 "+rtc_base/logging.h",
136 ],
Niels Möllerd8b9ed72019-05-08 11:53:51137 "rtc_event_log_output_file.h": [
Niels Möllerd8b9ed72019-05-08 11:53:51138 # For private member and constructor.
139 "+rtc_base/system/file_wrapper.h",
140 ],
Mirko Bonadeia418e672018-10-24 11:57:25141
Henrik Boström3e6931b2022-11-11 09:07:34142 "legacy_stats_types\.h": [
Mirko Bonadeia418e672018-10-24 11:57:25143 "+rtc_base/thread_checker.h",
144 ],
145
Mirko Bonadeia418e672018-10-24 11:57:25146 "audio_decoder\.h": [
147 "+rtc_base/buffer.h",
Mirko Bonadeia418e672018-10-24 11:57:25148 ],
149
Mirko Bonadeia418e672018-10-24 11:57:25150 "audio_encoder\.h": [
151 "+rtc_base/buffer.h",
Mirko Bonadeia418e672018-10-24 11:57:25152 ],
153
Mirko Bonadeia418e672018-10-24 11:57:25154 "audioproc_float\.h": [
155 "+modules/audio_processing/include/audio_processing.h",
156 ],
157
Sam Zackrissonb0bd0702020-05-12 08:48:19158 "echo_detector_creator\.h": [
159 "+modules/audio_processing/include/audio_processing.h",
160 ],
161
Niels Möller7c8c4db2022-06-13 08:36:38162 "make_ref_counted\.h": [
163 "+rtc_base/ref_counted_object.h",
164 ],
165
Mirko Bonadeia418e672018-10-24 11:57:25166 "mock.*\.h": [
167 "+test/gmock.h",
168 ],
169
Florent Castelli123a0ed2022-11-10 13:28:42170 "mock_peerconnectioninterface\.h": [
171 "+rtc_base/ref_counted_object.h",
172 ],
173
174 "mock_video_track\.h": [
175 "+rtc_base/ref_counted_object.h",
176 ],
177
Byoungchan Leeb36f6892022-03-02 20:55:22178 "notifier\.h": [
179 "+rtc_base/system/no_unique_address.h",
180 ],
181
Mirko Bonadeia418e672018-10-24 11:57:25182 "simulated_network\.h": [
Mirko Bonadeia418e672018-10-24 11:57:25183 "+rtc_base/random.h",
184 "+rtc_base/thread_annotations.h",
185 ],
186
187 "test_dependency_factory\.h": [
188 "+rtc_base/thread_checker.h",
189 ],
190
Sebastian Janssonfc8279d2020-01-16 10:45:59191 "time_controller\.h": [
192 "+rtc_base/thread.h",
193 ],
194
Mirko Bonadeia418e672018-10-24 11:57:25195 "videocodec_test_fixture\.h": [
196 "+modules/video_coding/include/video_codec_interface.h"
197 ],
198
Artem Titovb586d822021-02-04 14:06:50199 "sequence_checker\.h": [
200 "+rtc_base/synchronization/sequence_checker_internal.h",
201 "+rtc_base/thread_annotations.h",
202 ],
203
Harald Alvestrand985310e2021-10-01 15:11:17204 "wrapping_async_dns_resolver\.h": [
205 "+rtc_base/async_resolver.h",
206 "+rtc_base/async_resolver_interface.h",
207 "+rtc_base/socket_address.h",
208 "+rtc_base/third_party/sigslot/sigslot.h",
209 "+rtc_base/thread_annotations.h",
210 ],
211
philipel6160ca52022-03-16 11:11:42212 "video_encoder_factory_template.*\.h": [
213 "+modules/video_coding",
214 ],
215
philipelf0232f32022-07-14 14:06:51216 "video_decoder_factory_template.*\.h": [
217 "+modules/video_coding",
218 ],
219
Jonas Oreland128c4dc2022-03-30 05:57:48220 "field_trials\.h": [
221 "+rtc_base/containers/flat_map.h",
222 ],
223
Mirko Bonadei9d9c2d52022-10-07 21:47:49224 "video_track_source_proxy_factory.h": [
225 "+rtc_base/thread.h",
226 ],
227
Emil Lundmark1c8103d2022-09-21 13:20:22228 "field_trials_registry\.h": [
229 "+rtc_base/containers/flat_set.h",
230 ],
231
Mirko Bonadei90490372018-10-26 11:17:47232 # .cc files in api/ should not be restricted in what they can #include,
233 # so we re-add all the top-level directories here. (That's because .h
234 # files leak their #includes to whoever's #including them, but .cc files
235 # do not since no one #includes them.)
kwiberg087bd342017-02-10 16:15:44236 ".*\.cc": [
Mirko Bonadeia418e672018-10-24 11:57:25237 "+audio",
238 "+call",
239 "+common_audio",
240 "+common_video",
241 "+examples",
Emil Lundmark1c8103d2022-09-21 13:20:22242 "+experiments",
Mirko Bonadeia418e672018-10-24 11:57:25243 "+logging",
244 "+media",
245 "+modules",
246 "+p2p",
247 "+pc",
248 "+rtc_base",
249 "+rtc_tools",
250 "+sdk",
251 "+stats",
252 "+system_wrappers",
253 "+test",
254 "+tools",
255 "+tools_webrtc",
256 "+video",
257 "+third_party",
kwiberg1e4e8cb2017-01-31 09:48:08258 ],
kjellander@webrtc.org94a23f02016-03-17 11:05:36259}