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

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

proxygen_add_library(proxygen_http_webtransport
  SRCS
    WebTransport.cpp
  EXPORTED_DEPS
    mvfst::mvfst_api_quic_callbacks
    mvfst::mvfst_api_transport_info
    mvfst::mvfst_priority_priority_queue
    Folly::folly_cancellation_token
    Folly::folly_expected
    Folly::folly_futures_core
    Folly::folly_io_iobuf
    Folly::folly_network_address
    Folly::folly_optional
)

proxygen_add_library(proxygen_http_webtransport_httpwebtransport
  SRCS
    HTTPWebTransport.cpp
  DEPS
    proxygen_http_message
    proxygen_http_structuredheaders_decoder
    proxygen_http_structuredheaders_encoder
  EXPORTED_DEPS
    Folly::folly_expected
    Folly::folly_optional
)

proxygen_add_library(proxygen_http_webtransport_flow_controller)

proxygen_add_library(proxygen_http_webtransport_webtransportimpl
  SRCS
    WebTransportImpl.cpp
  DEPS
    glog::glog
  EXPORTED_DEPS
    proxygen_http_codec_codec_common
    proxygen_http_webtransport
    proxygen_http_webtransport_flow_controller
    mvfst::mvfst_constants
)

proxygen_add_library(proxygen_http_webtransport_quicwebtransport
  SRCS
    QuicWebTransport.cpp
  DEPS
    mvfst::mvfst_common_address_quic_socket_address_bridge
  EXPORTED_DEPS
    proxygen_http_webtransport_webtransportimpl
    mvfst::mvfst_api_transport
    Folly::folly_logging_logging
)

proxygen_add_library(proxygen_http_webtransport_quic_wt_session
  SRCS
    QuicWtSession.cpp
  DEPS
    mvfst::mvfst_common_address_quic_socket_address_bridge
  EXPORTED_DEPS
    proxygen_http_webtransport
    proxygen_http_webtransport_wt_stream_manager
    proxygen_http_webtransport_wt_util
    mvfst::mvfst_api_transport
    mvfst::mvfst_priority_http_priority_queue
    Folly::folly_logging_logging
)

proxygen_add_library(proxygen_http_webtransport_wt_stream_manager
  SRCS
    WtEgressContainer.cpp
    WtStreamManager.cpp
  DEPS
    Folly::folly_logging_logging
  EXPORTED_DEPS
    proxygen_http_webtransport
    proxygen_http_webtransport_flow_controller
    mvfst::mvfst_priority_priority_queue
    Folly::folly_container_f14_hash
    Folly::folly_io_iobuf
)

proxygen_add_library(proxygen_http_webtransport_wt_util
  SRCS
    WtUtils.cpp
  DEPS
    proxygen_http_codec_codec_common
    mvfst::mvfst_codec_types
    Folly::folly_logging_logging
  EXPORTED_DEPS
    proxygen_http_codec_direction
    proxygen_http_codec_webtransport_webtransport_capsule_codec
    proxygen_http_webtransport_wt_stream_manager
)

proxygen_add_library(proxygen_http_webtransport_webtransport_session
  SRCS
    WebTransportSession.cpp
  EXPORTED_DEPS
    proxygen_http_session_http_transaction
    proxygen_http_webtransport_wt_stream_manager
    proxygen_http_webtransport_wt_util
    mvfst::mvfst_priority_http_priority_queue
)

proxygen_add_library(proxygen_http_webtransport_wt_hq_session
  SRCS
    HqWtSession.cpp
  EXPORTED_DEPS
    proxygen_http_webtransport_quic_wt_session
    proxygen_http_webtransport_webtransport_session
)

if(BUILD_TESTS)
  add_subdirectory(test)
endif()
