# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.

# Auto-generated by quic/facebook/generate_cmake.py - DO NOT EDIT MANUALLY

mvfst_add_library(mvfst_congestion_control_bandwidth
  SRCS
    Bandwidth.cpp
  DEPS
    Folly::folly_lang_assume
    fmt::fmt
)

mvfst_add_library(mvfst_congestion_control_congestion_controller
  EXPORTED_DEPS
    mvfst_congestion_control_bandwidth
    mvfst_constants
    mvfst_state_cloned_packet_identifier
    mvfst_state_loss_event
    mvfst_state_outstanding_packet
)

mvfst_add_library(mvfst_congestion_control_congestion_control_functions
  SRCS
    CongestionControlFunctions.cpp
  DEPS
    mvfst_common_time_util
  EXPORTED_DEPS
    mvfst_common_mvfst_logging
    mvfst_state_quic_state_machine
)

mvfst_add_library(mvfst_congestion_control_congestion_controller_factory
  SRCS
    CongestionControllerFactory.cpp
  DEPS
    mvfst_common_mvfst_logging
    mvfst_congestion_control_bbr
    mvfst_congestion_control_bbr2
    mvfst_congestion_control_bbr_bandwidth_sampler
    mvfst_congestion_control_bbr_rtt_sampler
    mvfst_congestion_control_copa
    mvfst_congestion_control_cubic
    mvfst_congestion_control_modular_bbr2_startup
    mvfst_congestion_control_newreno
  EXPORTED_DEPS
    mvfst_constants
)

mvfst_add_library(mvfst_congestion_control_static_cwnd_congestion_controller
  SRCS
    StaticCwndCongestionController.cpp
  DEPS
    mvfst_congestion_control_congestion_control_functions
  EXPORTED_DEPS
    mvfst_congestion_control_congestion_controller
    mvfst_state_ack_event
    mvfst_state_quic_state_machine
    mvfst_state_transport_settings
)

mvfst_add_library(mvfst_congestion_control_server_congestion_controller_factory
  SRCS
    ServerCongestionControllerFactory.cpp
  DEPS
    mvfst_congestion_control_bbr
    mvfst_congestion_control_bbr2
    mvfst_congestion_control_bbr_bandwidth_sampler
    mvfst_congestion_control_bbr_rtt_sampler
    mvfst_congestion_control_copa
    mvfst_congestion_control_cubic
    mvfst_congestion_control_modular_bbr2_startup
    mvfst_congestion_control_newreno
  EXPORTED_DEPS
    mvfst_congestion_control_congestion_controller_factory
)

mvfst_add_library(mvfst_congestion_control_cubic
  SRCS
    QuicCubic.cpp
  DEPS
    mvfst_common_mvfst_logging
    mvfst_congestion_control_ecn_l4s_tracker
    mvfst_logging_oops_logger
    mvfst_logging_qlogger_constants
    mvfst_logging_qlogger_macros
    mvfst_state_connection_oops_fields
    mvfst_state_state_functions
    Folly::folly_chrono
  EXPORTED_DEPS
    mvfst_congestion_control_congestion_control_functions
    mvfst_congestion_control_congestion_controller
    mvfst_exception
    mvfst_state_ack_event
    mvfst_state_quic_state_machine
)

mvfst_add_library(mvfst_congestion_control_newreno
  SRCS
    NewReno.cpp
  DEPS
    mvfst_common_mvfst_logging
    mvfst_congestion_control_congestion_control_functions
    mvfst_logging_oops_logger
    mvfst_logging_qlogger_constants
    mvfst_logging_qlogger_macros
    mvfst_state_connection_oops_fields
  EXPORTED_DEPS
    mvfst_congestion_control_congestion_controller
    mvfst_exception
    mvfst_state_ack_event
    mvfst_state_quic_state_machine
)

mvfst_add_library(mvfst_congestion_control_copa
  SRCS
    Copa.cpp
  DEPS
    mvfst_common_mvfst_logging
    mvfst_common_time_util
    mvfst_congestion_control_congestion_control_functions
    mvfst_logging_oops_logger
    mvfst_logging_qlogger_constants
    mvfst_logging_qlogger_macros
    mvfst_state_connection_oops_fields
  EXPORTED_DEPS
    mvfst_common_optional
    mvfst_congestion_control_congestion_controller
    mvfst_congestion_control_third_party_chromium_windowed_filter
    mvfst_exception
    mvfst_state_ack_event
    mvfst_state_quic_state_machine
)

mvfst_add_library(mvfst_congestion_control_bbr
  SRCS
    Bbr.cpp
  DEPS
    mvfst_common_mvfst_logging
    mvfst_common_time_util
    mvfst_congestion_control_congestion_control_functions
    mvfst_constants
    mvfst_logging_oops_logger
    mvfst_logging_qlogger_constants
    mvfst_logging_qlogger_macros
    mvfst_state_ack_frequency_functions
    mvfst_state_connection_oops_fields
    Folly::folly_random
  EXPORTED_DEPS
    mvfst_congestion_control_bandwidth
    mvfst_congestion_control_congestion_controller
    mvfst_congestion_control_third_party_chromium_windowed_filter
    mvfst_state_quic_state_machine
    mvfst_state_transport_settings
)

mvfst_add_library(mvfst_congestion_control_bbr2
  SRCS
    Bbr2.cpp
  DEPS
    mvfst_common_mvfst_logging
    mvfst_congestion_control_congestion_control_functions
    mvfst_logging_qlogger_constants
    mvfst_logging_qlogger_macros
  EXPORTED_DEPS
    mvfst_congestion_control_bandwidth
    mvfst_congestion_control_congestion_controller
    mvfst_congestion_control_third_party_chromium_windowed_filter
    mvfst_state_quic_state_machine
    mvfst_state_transport_settings
)

mvfst_add_library(mvfst_congestion_control_bbr_rtt_sampler
  SRCS
    BbrRttSampler.cpp
  EXPORTED_DEPS
    mvfst_congestion_control_bbr
    mvfst_constants
)

mvfst_add_library(mvfst_congestion_control_bbr_bandwidth_sampler
  SRCS
    BbrBandwidthSampler.cpp
  DEPS
    mvfst_logging_oops_logger
    mvfst_logging_qlogger_macros
    mvfst_state_connection_oops_fields
  EXPORTED_DEPS
    mvfst_congestion_control_bbr
    mvfst_congestion_control_third_party_chromium_windowed_filter
    mvfst_state_quic_state_machine
)

mvfst_add_library(mvfst_congestion_control_pacer
  SRCS
    TokenlessPacer.cpp
  DEPS
    mvfst_congestion_control_congestion_control_functions
    mvfst_logging_qlogger_macros
    mvfst_observer_socket_observer_macros
  EXPORTED_DEPS
    mvfst_state_quic_state_machine
)

mvfst_add_library(mvfst_congestion_control_pacer_factory
  SRCS
    PacerFactory.cpp
  DEPS
    mvfst_congestion_control_pacer
)

mvfst_add_library(mvfst_congestion_control_packet_processor
  EXPORTED_DEPS
    mvfst_common_network_data
    mvfst_common_optional
    mvfst_state_cloned_packet_identifier
    mvfst_state_outstanding_packet
    Folly::folly_io_socket_option_map
)

mvfst_add_library(mvfst_congestion_control_simulated_tbf
  SRCS
    SimulatedTBF.cpp
  DEPS
    mvfst_common_mvfst_logging
    mvfst_exception
  EXPORTED_DEPS
    mvfst_constants
    Folly::folly_token_bucket
    ${GLOG_LIBRARIES}
)

mvfst_add_library(mvfst_congestion_control_throttling_signal_provider
  EXPORTED_DEPS
    mvfst_common_optional
)

mvfst_add_library(mvfst_congestion_control_ecn_l4s_tracker
  SRCS
    EcnL4sTracker.cpp
  DEPS
    mvfst_exception
    mvfst_logging_qlogger_macros
    mvfst_observer_socket_observer_macros
  EXPORTED_DEPS
    mvfst_congestion_control_packet_processor
    mvfst_state_quic_state_machine
)

add_subdirectory(modular)
add_subdirectory(third_party)

add_subdirectory(test)
