blob: 1656c3f9168616fbc9ac2959ce3d73c16d3fe1c9 [file] [log] [blame]
# This is supposed to be a complete list of top-level directories,
# excepting only api/ itself.
include_rules = [
"-agents",
"-audio",
"-base",
"-build",
"-buildtools",
"-build_overrides",
"-call",
"-common_audio",
"-common_video",
"-data",
"-examples",
"-experiments",
"-g3doc",
"-ios",
"-infra",
"-logging",
"-media",
"-net",
"-modules",
"-out",
"-p2p",
"-pc",
"-resources",
"-rtc_base",
"-rtc_tools",
"-sdk",
"-stats",
"-style-guide",
"-system_wrappers",
"-test",
"-testing",
"-third_party",
"-tools",
"-tools_webrtc",
"-video",
"-external/webrtc/webrtc", # Android platform build.
"-libyuv",
"-common_types.h",
"-WebRTC",
]
specific_include_rules = {
# Some internal headers are allowed even in API headers:
".*\\.h": [
"+rtc_base/checks.h",
"+rtc_base/system/rtc_export.h",
"+rtc_base/system/rtc_export_template.h",
"+rtc_base/units/unit_base.h",
],
"array_view\\.h": [
"+rtc_base/type_traits.h",
],
# Needed because AudioEncoderOpus is in the wrong place for
# backwards compatibilty reasons. See
# https://bugs.chromium.org/p/webrtc/issues/detail?id=7847
"audio_encoder_opus\\.h": [
"+modules/audio_coding/codecs/opus/audio_encoder_opus.h",
],
"async_resolver_factory\\.h": [
"+rtc_base/async_resolver_interface.h",
],
"async_dns_resolver\\.h": [
"+rtc_base/socket_address.h",
],
"audio_device_defines\\.h": [
"+rtc_base/strings/string_builder.h",
],
"audio_format\\.h": [
"+rtc_base/strings/string_builder.h",
],
"candidate\\.h": [
"+rtc_base/network_constants.h",
"+rtc_base/socket_address.h",
],
"create_peerconnection_factory\\.h": [
"+rtc_base/thread.h",
],
"data_channel_interface\\.h": [
"+rtc_base/copy_on_write_buffer.h",
],
"data_channel_transport_interface\\.h": [
"+rtc_base/copy_on_write_buffer.h",
],
"datagram_connection\\.h": [
"+p2p/base/transport_description.h",
],
"mock_datagram_connection\\.h": [
"+p2p/base/transport_description.h",
],
"datagram_connection_factory\\.h": [
"+p2p/base/port_allocator.h",
"+rtc_base/rtc_certificate.h",
],
"dtls_transport_interface\\.h": [
"+rtc_base/ssl_certificate.h",
],
"fec_controller\\.h": [
"+modules/include/module_fec_types.h",
],
"ice_server_parsing\\.h": [
"+p2p/base/port_allocator.h",
"+rtc_base/socket_address.h",
],
"jsep\\.h": [
"+absl/strings/has_absl_stringify.h",
"+absl/strings/str_format.h",
"+rtc_base/system/no_unique_address.h",
"+rtc_base/thread_annotations.h",
],
"local_network_access_permission\\.h": [
"+rtc_base/socket_address.h",
],
"packet_socket_factory\\.h": [
"+rtc_base/async_packet_socket.h",
"+rtc_base/socket_address.h",
"+rtc_base/ssl_certificate.h",
],
"payload_type\\.h": [
"+absl/strings/str_format.h",
"+rtc_base/strong_alias.h",
],
"turn_customizer\\.h": [
"+p2p/base/port_interface.h",
],
"peer_connection_interface\\.h": [
"+media/base/media_config.h",
"+media/base/media_engine.h",
"+p2p/base/port.h",
"+p2p/base/port_allocator.h",
"+p2p/dtls/dtls_transport_factory.h",
"+rtc_base/network.h",
"+rtc_base/network_constants.h",
"+rtc_base/network_monitor_factory.h",
"+rtc_base/rtc_certificate.h",
"+rtc_base/rtc_certificate_generator.h",
"+rtc_base/socket_address.h",
"+rtc_base/socket_factory.h",
"+rtc_base/ssl_certificate.h",
"+rtc_base/ssl_stream_adapter.h",
"+rtc_base/system/plan_b_only.h",
"+rtc_base/thread.h",
],
"proxy\\.h": [
"+rtc_base/event.h",
"+rtc_base/message_handler.h", # Inherits from it.
"+rtc_base/thread.h",
],
"ref_counted_base\\.h": [
"+rtc_base/ref_counter.h",
],
"rtc_error\\.h": [
"+rtc_base/logging.h",
"+rtc_base/strings/string_builder.h",
"+absl/strings/has_absl_stringify.h",
"+absl/strings/str_format.h",
],
"rtc_event_log_output_file\\.h": [
# For private member and constructor.
"+rtc_base/system/file_wrapper.h",
],
"legacy_stats_types\\.h": [
"+rtc_base/thread_annotations.h",
"+rtc_base/thread_checker.h",
],
"audio_decoder\\.h": [
"+rtc_base/buffer.h",
],
"audio_encoder\\.h": [
"+rtc_base/buffer.h",
],
"make_ref_counted\\.h": [
"+rtc_base/ref_counted_object.h",
],
"mock.*\\.h": [
"+test/gmock.h",
],
"mock_peerconnectioninterface\\.h": [
"+rtc_base/ref_counted_object.h",
],
"mock_video_track\\.h": [
"+rtc_base/ref_counted_object.h",
],
"notifier\\.h": [
"+rtc_base/system/no_unique_address.h",
"+rtc_base/thread_annotations.h",
],
"priority\\.h": [
"+rtc_base/strong_alias.h",
],
"sctp_transport_interface\\.h": [
"+absl/strings/str_format.h",
],
"simulated_network\\.h": [
"+rtc_base/random.h",
"+rtc_base/thread_annotations.h",
],
"time_controller\\.h": [
"+rtc_base/thread.h",
],
"videocodec_test_fixture\\.h": [
"+modules/video_coding/include/video_codec_interface.h"
],
"rtp_parameters\\.h": [
"+absl/strings/str_format.h",
],
"sequence_checker\\.h": [
"+rtc_base/synchronization/sequence_checker_internal.h",
"+rtc_base/thread_annotations.h",
],
"video_encoder_factory_template.*\\.h": [
"+modules/video_coding",
],
"video_encoder_factory_interface\\.h": [
"+rtc_base/numerics",
],
"video_encoder_interface\\.h": [
"+rtc_base/numerics",
],
"video_quality_test_fixture\\.h": [
"+video/config/video_encoder_config.h",
],
"simple_encoder_wrapper\\.h": [
"+common_video",
"+modules",
],
"video_decoder_factory_template.*\\.h": [
"+modules/video_coding",
],
"field_trials\\.h": [
"+rtc_base/containers/flat_map.h",
],
"video_track_source_proxy_factory\\.h": [
"+rtc_base/thread.h",
],
"field_trials_registry\\.h": [
"+rtc_base/containers/flat_set.h",
],
"ice_transport_factory\\.h": [
"+p2p/base/port_allocator.h",
],
# .cc files in api/ should not be restricted in what they can #include,
# so we re-add all the top-level directories here. (That's because .h
# files leak their #includes to whoever's #including them, but .cc files
# do not since no one #includes them.)
".*\\.cc": [
"+audio",
"+call",
"+common_audio",
"+common_video",
"+examples",
"+experiments",
"+logging",
"+media",
"+modules",
"+p2p",
"+pc",
"+rtc_base",
"+rtc_tools",
"+sdk",
"+stats",
"+system_wrappers",
"+test",
"+tools",
"+tools_webrtc",
"+video",
"+third_party",
],
}