# 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_session_session
  SRCS
    HTTPSession.cpp
    HTTPSessionBase.cpp
  DEPS
    proxygen_http_codec_http1x_codec
    proxygen_http_session_stats
    proxygen_http_webtransport_httpwebtransport
    proxygen_http_webtransport_webtransport_session
    proxygen_http_webtransport_wt_util
    fizz::fizz
    Folly::folly_conv
    Folly::folly_cpp_attributes
    Folly::folly_random
    Folly::folly_tracing_scoped_trace_section
  EXPORTED_DEPS
    proxygen_http_codec_codec_common
    proxygen_http_codec_compress_hpack
    proxygen_http_codec_http2_codec
    proxygen_http_codec_rate_limit_filters
    proxygen_http_http_header_size
    proxygen_http_http_utils
    proxygen_http_observer_session_observer_container
    proxygen_http_observer_session_observer_interface
    proxygen_http_session_http_event
    proxygen_http_session_http_session_activity_tracker
    proxygen_http_session_http_transaction
    proxygen_http_session_transaction_byte_events
    proxygen_utils_shared_wheel_timer
    proxygen_utils_time_util
    wangle::wangle_acceptor_acceptor_core
    wangle::wangle_acceptor_managed
    fizz::fizz
    Folly::folly_container_f14_hash
    Folly::folly_intrusive_list
    Folly::folly_io_async_async_base
    Folly::folly_io_async_async_socket
    Folly::folly_io_async_async_ssl_socket
    Folly::folly_io_async_async_udp_socket
    Folly::folly_io_async_ssl_context
    Folly::folly_io_iobuf
    Folly::folly_optional
    glog::glog
)

proxygen_add_library(proxygen_http_session_server
  SRCS
    CodecErrorResponseHandler.cpp
    HTTPDirectResponseHandler.cpp
    HTTPDownstreamSession.cpp
    HTTPErrorPage.cpp
    HTTPSessionAcceptor.cpp
    SimpleController.cpp
  DEPS
    proxygen_http_session_http_session_codec_factory
    Folly::folly_conv
    Folly::folly_io_iobuf
    glog::glog
  EXPORTED_DEPS
    proxygen_error
    proxygen_http_codec_codec_factory
    proxygen_http_http_headers
    proxygen_http_session_http_transaction
    proxygen_http_session_session
    proxygen_services_http_acceptor
    proxygen_utils_shared_wheel_timer
    Folly::folly_io_async_async_ssl_socket
)

proxygen_add_library(proxygen_http_session_http_session_activity_tracker
  SRCS
    HTTPSessionActivityTracker.cpp
  DEPS
    proxygen_http_session_transaction_byte_events
  EXPORTED_DEPS
    wangle::wangle_acceptor_managed
)

proxygen_add_library(proxygen_http_session_byte_events
  SRCS
    ByteEvents.cpp
  DEPS
    Folly::folly_conv
  EXPORTED_DEPS
    proxygen_utils_time_util
    Folly::folly_intrusive_list
    Folly::folly_portability
)

proxygen_add_library(proxygen_http_session_transaction_byte_events
  SRCS
    ByteEventTracker.cpp
  EXPORTED_DEPS
    proxygen_http_session_byte_events
    proxygen_http_session_http_transaction
    proxygen_utils_time_util
)

proxygen_add_library(proxygen_http_session_hq_byte_event_tracker
  SRCS
    HQByteEventTracker.cpp
  EXPORTED_DEPS
    proxygen_http_session_transaction_byte_events
    mvfst::mvfst_api_transport
)

proxygen_add_library(proxygen_http_session_http2_priority_queue
  SRCS
    HTTP2PriorityQueue.cpp
  EXPORTED_DEPS
    proxygen_http_codec_codec_common
    proxygen_http_codec_http2_codec
    proxygen_utils_shared_wheel_timer
    Folly::folly_intrusive_list
    Folly::folly_io_async_async_base
)

proxygen_add_library(proxygen_http_session_http_event
  SRCS
    HTTPEvent.cpp
  EXPORTED_DEPS
    proxygen_http_codec_codec_common
    proxygen_http_http_utils
    glog::glog
)

proxygen_add_library(proxygen_http_session_http_state_machine_lib
  SRCS
    HTTPTransactionEgressSM.cpp
    HTTPTransactionIngressSM.cpp
  DEPS
    Folly::folly_indestructible
  EXPORTED_DEPS
    proxygen_utils_state_machine
)

proxygen_add_library(proxygen_http_session_http_transaction
  SRCS
    HTTPTransaction.cpp
  DEPS
    proxygen_http_codec_webtransport_webtransport_framer
    proxygen_http_http_headers
    proxygen_http_session_stats
    proxygen_http_webtransport_httpwebtransport
    Folly::folly_conv
    Folly::folly_io_async_event_base_manager
    Folly::folly_tracing_scoped_trace_section
    glog::glog
  EXPORTED_DEPS
    proxygen_error
    proxygen_http_codec_codec_common
    proxygen_http_http_header_size
    proxygen_http_http_utils
    proxygen_http_message
    proxygen_http_observer_http_transaction_observer_container
    proxygen_http_observer_http_transaction_observer_interface
    proxygen_http_session_byte_events
    proxygen_http_session_http2_priority_queue
    proxygen_http_session_http_event
    proxygen_http_session_http_state_machine_lib
    proxygen_http_sink_flow_control_info
    proxygen_http_webtransport
    proxygen_http_webtransport_webtransportimpl
    proxygen_http_window
    proxygen_utils_shared_wheel_timer
    proxygen_utils_time_util
    proxygen_utils_trace
    wangle::wangle_acceptor_acceptor_core
    Folly::folly_io_async_async_base
    Folly::folly_io_async_async_transport
    Folly::folly_io_async_delayed_destruction
    Folly::folly_lang_assume
    Folly::folly_network_address
    Folly::folly_optional
)

proxygen_add_library(proxygen_http_session_http_upstream_session
  SRCS
    HTTPUpstreamSession.cpp
  DEPS
    wangle::wangle_acceptor_managed
    Folly::folly_io_async_async_ssl_socket
  EXPORTED_DEPS
    proxygen_http_codec_compress_header_codec
    proxygen_http_session_session
    proxygen_http_session_stats
    Folly::folly_io_async_ssl_context
)

proxygen_add_library(proxygen_http_session_http_session_codec_factory
  SRCS
    HTTPDefaultSessionCodecFactory.cpp
  DEPS
    proxygen_http_codec_codec_common
  EXPORTED_DEPS
    proxygen_http_codec_codec_factory
    proxygen_services_acceptor_configuration
)

proxygen_add_library(proxygen_http_session_stream_dispatcher
  SRCS
    HQStreamDispatcher.cpp
  EXPORTED_DEPS
    proxygen_http_codec_hq_codec
    mvfst::mvfst_api_transport
    Folly::folly_io_async_async_base
)

proxygen_add_library(proxygen_http_session_hq_session
  SRCS
    HQSession.cpp
    HQStreamBase.cpp
  DEPS
    proxygen_http_codec_webtransport_webtransport_framer
    proxygen_http_priority_functions
    proxygen_http_session_stats
    proxygen_http_webtransport_httpwebtransport
    proxygen_http_webtransport_wt_hq_session
    proxygen_http_webtransport_wt_util
    mvfst::mvfst_common_address_quic_socket_address_bridge
    mvfst::mvfst_folly_utils
    mvfst::mvfst_logging_qlogger_constants
    wangle::wangle_acceptor_managed
    Folly::folly_cpp_attributes
    Folly::folly_io_async_async_transport
    Folly::folly_scope_guard
  EXPORTED_DEPS
    proxygen_http_codec_codec_common
    proxygen_http_codec_h3_early_data_handler
    proxygen_http_codec_hq_codec
    proxygen_http_codec_http1x_codec
    proxygen_http_codec_http2_codec
    proxygen_http_http_utils
    proxygen_http_session_hq_byte_event_tracker
    proxygen_http_session_http_transaction
    proxygen_http_session_quic_protocol_info
    proxygen_http_session_session
    proxygen_http_session_stream_dispatcher
    proxygen_http_session_webtransport_filter
    proxygen_utils_conditional_gate
    mvfst::mvfst_api_transport
    mvfst::mvfst_codec_types
    mvfst::mvfst_common_buf_util
    mvfst::mvfst_common_events_folly_eventbase
    mvfst::mvfst_constants
    mvfst::mvfst_priority_http_priority_queue
    mvfst::mvfst_priority_priority_queue
    Folly::folly_container_evicting_cache_map
    Folly::folly_io_async_async_base
    Folly::folly_io_async_async_socket
    Folly::folly_io_async_delayed_destruction
    Folly::folly_io_iobuf
    Folly::folly_lang_assume
    Folly::folly_optional
)

proxygen_add_library(proxygen_http_session_hq_upstream_session
  SRCS
    HQUpstreamSession.cpp
  DEPS
    wangle::wangle_acceptor_managed
  EXPORTED_DEPS
    proxygen_http_session_hq_session
    mvfst::mvfst_common_events_folly_eventbase
    Folly::folly_io_async_async_base
)

proxygen_add_library(proxygen_http_session_hq_downstream_session
  SRCS
    HQDownstreamSession.cpp
  EXPORTED_DEPS
    proxygen_http_session_hq_session
)

proxygen_add_library(proxygen_http_session_quic_protocol_info
  EXPORTED_DEPS
    mvfst::mvfst_api_transport
    mvfst::mvfst_common_optional
    wangle::wangle_acceptor_acceptor_core
)

proxygen_add_library(proxygen_http_session_webtransport_filter
  EXPORTED_DEPS
    proxygen_http_codec_hq_codec
    proxygen_http_codec_webtransport_webtransport_capsule_codec
    proxygen_http_http_message_filters
    proxygen_http_session_http_transaction
    proxygen_http_webtransport
    Folly::folly_logging_logging
)

if(BUILD_TESTS)
  add_subdirectory(test)
endif()
