# 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_codec_direction
  SRCS
    TransportDirection.cpp
)

proxygen_add_library(proxygen_http_codec_error_code
  SRCS
    ErrorCode.cpp
  DEPS
    glog::glog
)

proxygen_add_library(proxygen_http_codec_util
  SRCS
    CodecUtil.cpp
  DEPS
    proxygen_http_http_headers
    Folly::folly_string
  EXPORTED_DEPS
    proxygen_http_codec_compress_header_codec
    proxygen_http_message
    proxygen_utils_util_inl
    Folly::folly_portability_windows
    Folly::folly_range
)

proxygen_add_library(proxygen_http_codec_codec_common
  SRCS
    CodecProtocol.cpp
    HTTP2Constants.cpp
    HTTPCodecFilter.cpp
    HTTPCodecPrinter.cpp
    HTTPParallelCodec.cpp
    HTTPSettings.cpp
    HeaderDecodeInfo.cpp
  DEPS
    Folly::folly_conv
    Folly::folly_string
    glog::glog
  EXPORTED_DEPS
    proxygen_error
    proxygen_http_codec_compress_compression_info
    proxygen_http_codec_compress_fast_header_name
    proxygen_http_codec_compress_header_codec
    proxygen_http_codec_compress_hpack
    proxygen_http_codec_direction
    proxygen_http_codec_error_code
    proxygen_http_codec_util
    proxygen_http_header_constants
    proxygen_http_http_header_size
    proxygen_http_http_headers
    proxygen_http_http_utils
    proxygen_http_message
    proxygen_utils_export
    proxygen_utils_filter_chain
    Folly::folly_io_iobuf
    Folly::folly_lang_assume
    Folly::folly_optional
    Folly::folly_portability
    Folly::folly_range
)

proxygen_add_library(proxygen_http_codec_http1x_codec
  SRCS
    HTTP1xCodec.cpp
    HTTPChecks.cpp
  DEPS
    proxygen_http_codec_util
    proxygen_http_http_headers
    Folly::folly_base64
    Folly::folly_io_iobuf
    Folly::folly_random
    Folly::folly_ssl_openssl_hash
  EXPORTED_DEPS
    proxygen_external_http_parser
    proxygen_http_codec_codec_common
    proxygen_http_codec_direction
    proxygen_http_message
)

proxygen_add_library(proxygen_http_codec_http2_codec
  SRCS
    FlowControlFilter.cpp
    HTTP2Codec.cpp
    HTTP2Framer.cpp
  DEPS
    proxygen_http_codec_util
    proxygen_http_priority_functions
    proxygen_utils_logging
    Folly::folly_base64
    Folly::folly_conv
    Folly::folly_random
    Folly::folly_tracing_scoped_trace_section
    Folly::folly_try
  EXPORTED_DEPS
    proxygen_http_codec_codec_common
    proxygen_http_codec_compress_hpack
    proxygen_http_codec_error_code
    proxygen_http_window
    proxygen_utils_export
    Folly::folly_io_iobuf
    Folly::folly_optional
    Folly::folly_range
)

proxygen_add_library(proxygen_http_codec_rate_limit_filters
  SRCS
    RateLimitFilter.cpp
  EXPORTED_DEPS
    proxygen_http_codec_codec_common
    proxygen_http_codec_http2_codec
    proxygen_http_session_stats
    Folly::folly_io_async_async_base
)

proxygen_add_library(proxygen_http_codec_debug_filter
  EXPORTED_DEPS
    proxygen_http_codec_codec_common
    proxygen_utils_logging
    Folly::folly_container_evicting_cache_map
)

proxygen_add_library(proxygen_http_codec
  EXPORTED_DEPS
    proxygen_http_codec_http1x_codec
    proxygen_http_codec_http2_codec
)

proxygen_add_library(proxygen_http_codec_codec_factory
  SRCS
    DefaultHTTPCodecFactory.cpp
    HTTPCodecFactory.cpp
  DEPS
    proxygen_http_codec_http1x_codec
    proxygen_http_codec_http2_codec
  EXPORTED_DEPS
    proxygen_http_codec_codec_common
    proxygen_http_codec_direction
)

proxygen_add_library(proxygen_http_codec_h3_early_data_handler
  SRCS
    H3EarlyDataHandler.cpp
  DEPS
    proxygen_http_codec_hq_codec
    mvfst::mvfst_codec_types
    mvfst::mvfst_folly_utils
    Folly::folly_io_iobuf
    Folly::folly_logging_logging
  EXPORTED_DEPS
    proxygen_http_codec_codec_common
    mvfst::mvfst_state_early_data_app_params_handler
)

proxygen_add_library(proxygen_http_codec_hq_codec
  SRCS
    HQControlCodec.cpp
    HQFramedCodec.cpp
    HQFramer.cpp
    HQStreamCodec.cpp
    HQUnidirectionalCodec.cpp
    HQUtils.cpp
  DEPS
    proxygen_http_priority_functions
    proxygen_utils_logging
    Folly::folly_format
    Folly::folly_random
    Folly::folly_scope_guard
    Folly::folly_tracing_scoped_trace_section
  EXPORTED_DEPS
    proxygen_http_codec_codec_common
    proxygen_http_codec_compress_hpack
    proxygen_http_codec_compress_qpack
    proxygen_http_codec_error_code
    proxygen_http_codec_util
    proxygen_http_h3_errors
    proxygen_http_http_utils
    mvfst::mvfst_codec_types
    mvfst::mvfst_folly_utils
    Folly::folly_function
    Folly::folly_io_iobuf
    Folly::folly_lang_assume
    Folly::folly_optional
    Folly::folly_range
)

proxygen_add_library(proxygen_http_codec_http_binary_codec
  SRCS
    HTTPBinaryCodec.cpp
  DEPS
    mvfst::mvfst_codec_types
    mvfst::mvfst_folly_utils
  EXPORTED_DEPS
    proxygen_http_codec_codec_common
    proxygen_http_codec_direction
    proxygen_http_message
    Folly::folly_io_iobuf
)

proxygen_add_library(proxygen_http_codec_varint_utils
  EXPORTED_DEPS
    mvfst::mvfst_codec_types
    Folly::folly_io_iobuf
)

proxygen_add_library(proxygen_http_codec_capsule_codec
  SRCS
    CapsuleCodec.cpp
  DEPS
    mvfst::mvfst_folly_utils
    Folly::folly_logging_logging
  EXPORTED_DEPS
    Folly::folly_expected
    Folly::folly_io_iobuf
    Folly::folly_optional
)

add_subdirectory(compress)
add_subdirectory(webtransport)

if(BUILD_TESTS)
  add_subdirectory(test)
endif()
