# This is supposed to be a complete list of top-level directories,
# excepting only api/ itself.
include_rules = [
  "-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",
  ],

  "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",
    "+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/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",
    "+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",
  ],

  "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",
  ],

  "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",
  ],
}
