# 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
  EXPORTED_DEPS
    proxygen_http_client
    proxygen_http_session_server
    Folly::folly_conv
    Folly::folly_fbstring
    Folly::folly_fbvector
    Folly::folly_intrusive_list
    Folly::folly_io_async_async_base
    Folly::folly_io_async_async_socket
    Folly::folly_io_async_async_transport
    Folly::folly_io_iobuf
    Folly::folly_json_dynamic
    Folly::folly_lang_bits
    Folly::folly_memory
    Folly::folly_network_address
    Folly::folly_optional
    Folly::folly_portability
    Folly::folly_random
    Folly::folly_range
    Folly::folly_thread_local
)

proxygen_add_library(proxygen_http_header_constants
  SRCS
    HeaderConstants.cpp
)

proxygen_add_library(proxygen_http_http_message_filters
  SRCS
    HTTPMessageFilters.cpp
  EXPORTED_DEPS
    proxygen_http_session_http_transaction
    proxygen_http_sink_client_sink_interface
    Folly::folly_io_async_destructor_check
    Folly::folly_memory
)

proxygen_add_library(proxygen_http_client
  SRCS
    HTTPConnector.cpp
  DEPS
    proxygen_http_codec_http1x_codec
    proxygen_http_codec_http2_codec
    proxygen_http_session_http_transaction
    proxygen_http_session_http_upstream_session
    wangle::wangle_ssl_ssl_util
    Folly::folly_io_async_async_ssl_socket
    Folly::folly_logging_logging
  EXPORTED_DEPS
    proxygen_http_codec_codec_common
    proxygen_http_codec_codec_factory
    proxygen_utils_shared_wheel_timer
    proxygen_utils_time_util
    wangle::wangle_acceptor_acceptor_core
    Folly::folly_io_async_async_base
    Folly::folly_io_async_async_socket
    Folly::folly_io_async_ssl_context
    Folly::folly_io_socket_option_map
    Folly::folly_ssl_ssl_session
)

proxygen_add_library(proxygen_http_client_base
  EXPORTED_DEPS
    proxygen_http_session_http_upstream_session
)

proxygen_add_library(proxygen_http_http_connector_with_fizz
  SRCS
    HTTPConnectorWithFizz.cpp
  DEPS
    proxygen_http_session_http_upstream_session
  EXPORTED_DEPS
    proxygen_http_client
    fizz::fizz
    Folly::folly_io_socket_option_map
)

proxygen_add_library(proxygen_http_hq_connector
  SRCS
    HQConnector.cpp
  DEPS
    proxygen_http_codec_h3_early_data_handler
    proxygen_http_session_hq_session
    mvfst::mvfst_common_address_quic_socket_address_bridge
    mvfst::mvfst_common_udpsocket_folly_async_udp_socket
    mvfst::mvfst_congestion_control_congestion_controller_factory
    mvfst::mvfst_fizz_client_handshake
    Folly::folly_logging_logging
  EXPORTED_DEPS
    proxygen_http_session_hq_upstream_session
    mvfst::mvfst_api_loop_detector_callback
    mvfst::mvfst_api_transport
    mvfst::mvfst_client
    mvfst::mvfst_common_events_folly_eventbase
    mvfst::mvfst_fizz_client_handshake_psk_cache
    mvfst::mvfst_logging_qlogger
    fizz::fizz
    Folly::folly_io_socket_option_map
)

proxygen_add_library(proxygen_http_window
  SRCS
    Window.cpp
  DEPS
    glog::glog
)

proxygen_add_library(proxygen_http_http_common
  EXPORTED_DEPS
    proxygen_http_session_session
)

proxygen_add_library(proxygen_error
  SRCS
    ProxygenErrorEnum.cpp
)

proxygen_add_library(proxygen_http_status_type
  SRCS
    StatusTypeEnum.cpp
)

proxygen_add_library(proxygen_http_http_header_size)

proxygen_add_library(proxygen_http_http_utils
  SRCS
    HTTPConstants.cpp
    HTTPException.cpp
  EXPORTED_DEPS
    proxygen_http_codec_error_code
    proxygen_http_h3_errors
    proxygen_http_message
    proxygen_utils_exception
    Folly::folly_memory
)

proxygen_add_library(proxygen_http_http_headers
  SRCS
    HTTPHeaders.cpp
    HTTPMethod.cpp
    RFC2616.cpp
  DEPS
    proxygen_http_http_common_headers
    Folly::folly_indestructible
    Folly::folly_thread_local
    glog::glog
  EXPORTED_DEPS
    proxygen_utils_export
    proxygen_utils_util_inl
    Folly::folly_fbvector
    Folly::folly_optional
    Folly::folly_range
    Folly::folly_small_vector
    Folly::folly_string
    Folly::folly_try
    Folly::folly_utility
)

proxygen_add_library(proxygen_http_types
  EXPORTED_DEPS
    Folly::folly_container_f14_hash
)

proxygen_add_library(proxygen_http_message
  SRCS
    HTTPMessage.cpp
  DEPS
    Folly::folly_format
    Folly::folly_range
    Folly::folly_singleton_thread_local
    Folly::folly_string
  EXPORTED_DEPS
    proxygen_http_header_constants
    proxygen_http_http_header_size
    proxygen_http_http_headers
    proxygen_http_types
    proxygen_utils_parse_url
    proxygen_utils_time_util
    Folly::folly_conv
    Folly::folly_io_iobuf
    Folly::folly_network_address
    Folly::folly_optional
    glog::glog
)

proxygen_add_library(proxygen_http_priority_functions
  SRCS
    HTTPPriorityFunctions.cpp
  DEPS
    proxygen_http_structuredheaders_decoder
  EXPORTED_DEPS
    proxygen_http_message
    Folly::folly_optional
    Folly::folly_range
)

proxygen_add_library(proxygen_http_h3_errors
  SRCS
    HTTP3ErrorCode.cpp
  DEPS
    glog::glog
)

proxygen_add_library(proxygen_http_synchronized_quic_lrucache
  SRCS
    SynchronizedLruQuicPskCache.cpp
  EXPORTED_DEPS
    mvfst::mvfst_fizz_client_handshake_psk_cache
    Folly::folly_container_evicting_cache_map
    Folly::folly_synchronized
)

proxygen_add_library(proxygen_http_proxy_status
  SRCS
    ProxyStatus.cpp
  DEPS
    glog::glog
  EXPORTED_DEPS
    proxygen_http_status_type
    proxygen_http_structuredheaders_encoder
    Folly::folly_range
)

add_subdirectory(codec)
add_subdirectory(connpool)
add_subdirectory(coro)
add_subdirectory(observer)
add_subdirectory(session)
add_subdirectory(sink)
add_subdirectory(structuredheaders)
add_subdirectory(webtransport)

if(BUILD_TESTS)
  add_subdirectory(test)
endif()
