# 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",
  "-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:

  "call_factory_interface\.h": [
    "+call/rtp_transport_controller_send_factory_interface.h",
  ],

  ".*\.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",
  ],

  "candidate\.h": [
    "+rtc_base/network_constants.h",
    "+rtc_base/socket_address.h",
  ],

  "data_channel_interface\.h": [
    "+rtc_base/copy_on_write_buffer.h",
    "+rtc_base/ref_count.h",
  ],

  "data_channel_transport_interface\.h": [
    "+rtc_base/copy_on_write_buffer.h",
  ],

  "dtls_transport_interface\.h": [
    "+rtc_base/ref_count.h",
    "+rtc_base/ssl_certificate.h",
  ],

  "dtmf_sender_interface\.h": [
    "+rtc_base/ref_count.h",
  ],

  "fec_controller\.h": [
    "+modules/include/module_fec_types.h",
  ],

  "frame_transformer_interface\.h": [
    "+rtc_base/ref_count.h",
  ],

  "ice_transport_interface\.h": [
    "+rtc_base/ref_count.h",
  ],

  "jsep\.h": [
    "+rtc_base/ref_count.h",
  ],

  "media_stream_interface\.h": [
    "+modules/audio_processing/include/audio_processing_statistics.h",
    "+rtc_base/ref_count.h",
  ],

  "packet_socket_factory\.h": [
    "+rtc_base/proxy_info.h",
    "+rtc_base/async_packet_socket.h",
  ],

  "peer_connection_interface\.h": [
    "+call/rtp_transport_controller_send_factory_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/ref_count.h",
    "+rtc_base/rtc_certificate.h",
    "+rtc_base/rtc_certificate_generator.h",
    "+rtc_base/socket_address.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/ref_counted_object.h",
    "+rtc_base/thread.h",
  ],

  "ref_counted_base\.h": [
    "+rtc_base/ref_count.h",
    "+rtc_base/ref_counter.h",
  ],

  "rtc_error\.h": [
    "+rtc_base/logging.h",
  ],
  "rtc_event_log_output_file.h": [
    # For private member and constructor.
    "+rtc_base/system/file_wrapper.h",
  ],
  "rtp_packet_infos\.h": [
    "+rtc_base/ref_counted_object.h",
  ],
  "rtp_receiver_interface\.h": [
    "+rtc_base/ref_count.h",
  ],

  "rtp_sender_interface\.h": [
    "+rtc_base/ref_count.h",
  ],

  "rtp_transceiver_interface\.h": [
    "+rtc_base/ref_count.h",
  ],

  "sctp_transport_interface\.h": [
    "+rtc_base/ref_count.h",
  ],

  "set_local_description_observer_interface\.h": [
    "+rtc_base/ref_count.h",
  ],
  "set_remote_description_observer_interface\.h": [
    "+rtc_base/ref_count.h",
  ],

  "stats_types\.h": [
    "+rtc_base/ref_count.h",
    "+rtc_base/thread_checker.h",
  ],

  "uma_metrics\.h": [
    "+rtc_base/ref_count.h",
  ],

  "audio_mixer\.h": [
    "+rtc_base/ref_count.h",
  ],

  "audio_decoder\.h": [
    "+rtc_base/buffer.h",
  ],

  "audio_decoder_factory\.h": [
    "+rtc_base/ref_count.h",
  ],

  "audio_decoder_factory_template\.h": [
    "+rtc_base/ref_counted_object.h",
  ],

  "audio_encoder\.h": [
    "+rtc_base/buffer.h",
  ],

  "audio_encoder_factory\.h": [
    "+rtc_base/ref_count.h",
  ],

  "audio_encoder_factory_template\.h": [
    "+rtc_base/ref_counted_object.h",
  ],

  "frame_decryptor_interface\.h": [
    "+rtc_base/ref_count.h",
  ],

  "frame_encryptor_interface\.h": [
    "+rtc_base/ref_count.h",
  ],

  "rtc_stats_collector_callback\.h": [
    "+rtc_base/ref_count.h",
  ],

  "rtc_stats_report\.h": [
    "+rtc_base/ref_count.h",
    "+rtc_base/ref_counted_object.h",
  ],

  "audioproc_float\.h": [
    "+modules/audio_processing/include/audio_processing.h",
  ],

  "echo_detector_creator\.h": [
    "+modules/audio_processing/include/audio_processing.h",
  ],

  "fake_frame_decryptor\.h": [
    "+rtc_base/ref_counted_object.h",
  ],

  "fake_frame_encryptor\.h": [
    "+rtc_base/ref_counted_object.h",
  ],

  "fake_metronome\.h": [
    "+rtc_base/synchronization/mutex.h",
    "+rtc_base/task_queue.h",
    "+rtc_base/task_utils/repeating_task.h",
    "+rtc_base/thread_annotations.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",
  ],

  "simulated_network\.h": [
    "+rtc_base/random.h",
    "+rtc_base/thread_annotations.h",
  ],

  "test_dependency_factory\.h": [
    "+rtc_base/thread_checker.h",
  ],

  "time_controller\.h": [
    "+rtc_base/thread.h",
  ],

  "videocodec_test_fixture\.h": [
    "+modules/video_coding/include/video_codec_interface.h"
  ],

  "video_encoder_config\.h": [
    "+rtc_base/ref_count.h",
  ],

  "sequence_checker\.h": [
    "+rtc_base/synchronization/sequence_checker_internal.h",
    "+rtc_base/thread_annotations.h",
  ],

  "wrapping_async_dns_resolver\.h": [
    "+rtc_base/async_resolver.h",
    "+rtc_base/async_resolver_interface.h",
    "+rtc_base/socket_address.h",
    "+rtc_base/third_party/sigslot/sigslot.h",
    "+rtc_base/thread_annotations.h",
  ],

  "video_encoder_factory_template.*\.h": [
    "+modules/video_coding",
  ],

  "field_trials\.h": [
    "+rtc_base/containers/flat_map.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",
    "+logging",
    "+media",
    "+modules",
    "+p2p",
    "+pc",
    "+rtc_base",
    "+rtc_tools",
    "+sdk",
    "+stats",
    "+system_wrappers",
    "+test",
    "+tools",
    "+tools_webrtc",
    "+video",
    "+third_party",
  ],
}
