# 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_api_quic_batch_writer
  SRCS
    QuicBatchWriter.cpp
    QuicBatchWriterFactory.cpp
    QuicGsoBatchWriters.cpp
  DEPS
    mvfst_common_buf_accessor
  EXPORTED_DEPS
    mvfst_common_events_eventbase
    mvfst_common_mvfst_logging
    mvfst_common_udpsocket_quic_async_udp_socket
    mvfst_config
    mvfst_constants
    mvfst_state_quic_state_machine
    Folly::folly_io_iobuf
    Folly::folly_portability
)

mvfst_add_library(mvfst_api_quic_callbacks
  EXPORTED_DEPS
    mvfst_exception
)

mvfst_add_library(mvfst_api_transport_info
  EXPORTED_DEPS
    mvfst_common_optional
    mvfst_congestion_control_congestion_controller
)

mvfst_add_library(mvfst_api_transport
  SRCS
    QuicTransportBase.cpp
  DEPS
    mvfst_api_quic_batch_writer
    mvfst_common_mvfst_logging
    mvfst_common_time_util
    mvfst_logging_qlogger_constants
    mvfst_logging_qlogger_macros
    mvfst_loss
    mvfst_observer_socket_observer_macros
    mvfst_state_pacing_functions
    mvfst_state_state_functions
    mvfst_state_stream_functions
    Folly::folly_chrono
    Folly::folly_scope_guard
  EXPORTED_DEPS
    mvfst_api_transport_lite
    mvfst_common_events_eventbase
    mvfst_common_events_quic_timer
    mvfst_common_function_ref
    mvfst_common_network_data
    mvfst_common_optional
    mvfst_common_udpsocket_quic_async_udp_socket
    mvfst_congestion_control_congestion_controller_factory
    mvfst_congestion_control_copa
    mvfst_congestion_control_cubic
    mvfst_congestion_control_newreno
    mvfst_constants
    mvfst_exception
    mvfst_observer_socket_observer_container
    mvfst_priority_priority_queue
    mvfst_state_early_data_app_params_handler
    mvfst_state_quic_state_machine
    Folly::folly_exception_wrapper
    Folly::folly_io_iobuf
    Folly::folly_maybe_managed_ptr
    Folly::folly_portability
)

mvfst_add_library(mvfst_api_transport_lite
  SRCS
    QuicTransportBaseLite.cpp
  DEPS
    mvfst_api_loop_detector_callback
    mvfst_congestion_control_congestion_controller_factory
    mvfst_congestion_control_ecn_l4s_tracker
    mvfst_congestion_control_pacer_factory
    mvfst_flowcontrol_flow_control
    mvfst_logging_oops_logger
    mvfst_logging_qlogger_macros
    mvfst_loss
    mvfst_observer_socket_observer_macros
    mvfst_state_connection_oops_fields
    mvfst_state_pacing_functions
    mvfst_state_stream
    mvfst_state_stream_functions
    Folly::folly_scope_guard
  EXPORTED_DEPS
    mvfst_api_quic_batch_writer
    mvfst_api_quic_callbacks
    mvfst_api_transport_helpers
    mvfst_api_transport_info
    mvfst_codec_types
    mvfst_common_events_eventbase
    mvfst_common_events_quic_timer
    mvfst_common_function_ref
    mvfst_common_mvfst_logging
    mvfst_common_udpsocket_quic_async_udp_socket
    mvfst_exception
    mvfst_handshake
    mvfst_handshake_transport_parameters
    mvfst_observer_socket_observer_container
    mvfst_state_quic_state_machine
    fizz::fizz
    Folly::folly_io_async_delayed_destruction
    Folly::folly_maybe_managed_ptr
)

mvfst_add_library(mvfst_api_ack_scheduler
  SRCS
    QuicAckScheduler.cpp
  DEPS
    mvfst_codec
    mvfst_logging_oops_logger
    mvfst_state_connection_oops_fields
  EXPORTED_DEPS
    mvfst_constants
    mvfst_state_quic_state_machine
)

mvfst_add_library(mvfst_api_transport_helpers
  SRCS
    IoBufQuicBatch.cpp
    QuicPacketScheduler.cpp
    QuicTransportFunctions.cpp
  DEPS
    mvfst_common_buf_accessor
    mvfst_common_mvfst_logging
    mvfst_common_socket_util
    mvfst_common_string_utils
    mvfst_happyeyeballs
    mvfst_logging_oops_logger
    mvfst_logging_qlogger_macros
    mvfst_loss
    mvfst_state_ack_frequency_functions
    mvfst_state_ack_handler
    mvfst_state_connection_oops_fields
    mvfst_state_simple_frame_functions
    Folly::folly_tracing_static_tracepoint
  EXPORTED_DEPS
    mvfst_api_ack_scheduler
    mvfst_api_quic_batch_writer
    mvfst_client_state_and_handshake
    mvfst_codec
    mvfst_codec_pktbuilder
    mvfst_codec_pktrebuilder
    mvfst_codec_types
    mvfst_common_expected
    mvfst_common_function_ref
    mvfst_common_udpsocket_quic_async_udp_socket
    mvfst_constants
    mvfst_exception
    mvfst_flowcontrol_flow_control
    mvfst_handshake_transport_parameters
    mvfst_state_quic_state_machine
    mvfst_state_state_functions
    mvfst_state_stats_callback
    mvfst_state_stream_functions
    Folly::folly_lang_assume
)

mvfst_add_library(mvfst_api_loop_detector_callback
  EXPORTED_DEPS
    mvfst_constants
)

mvfst_add_library(mvfst_api_stream_async_transport
  SRCS
    QuicStreamAsyncTransport.cpp
  DEPS
    mvfst_common_address_quic_socket_address_bridge
    mvfst_common_events_folly_eventbase
    mvfst_common_mvfst_check
    mvfst_common_mvfst_logging
  EXPORTED_DEPS
    mvfst_api_transport
    mvfst_common_events_eventbase
    Folly::folly_io_async_async_transport
)

add_subdirectory(test)
