# 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_utils_headers
  EXPORTED_DEPS
    Folly::folly_conv
    Folly::folly_function
    Folly::folly_io_async_async_base
    Folly::folly_io_iobuf
    Folly::folly_memory
    Folly::folly_optional
    Folly::folly_portability_sys_resource
    Folly::folly_portability_time
    Folly::folly_random
    Folly::folly_range
    Folly::folly_string
    glog::glog
)

proxygen_add_library(proxygen_utils_cob_helper
  EXPORTED_DEPS
    glog::glog
)

proxygen_add_library(proxygen_utils_crypt
  SRCS
    CryptUtil.cpp
  DEPS
    Folly::folly_portability_openssl
    ${OPENSSL_LIBRARIES}
  EXPORTED_DEPS
    Folly::folly_range
)

proxygen_add_library(proxygen_utils_exception
  SRCS
    Exception.cpp
  EXPORTED_DEPS
    proxygen_error
    Folly::folly_conv
)

proxygen_add_library(proxygen_utils_filter_chain
  EXPORTED_DEPS
    Folly::folly_function
    Folly::folly_memory
    glog::glog
)

proxygen_add_library(proxygen_utils_logging
  SRCS
    Logging.cpp
  DEPS
    Folly::folly_debugging_symbolizer_symbolizer
    Folly::folly_singleton
    Folly::folly_string
    fmt::fmt
  EXPORTED_DEPS
    Folly::folly_io_iobuf
    Folly::folly_optional
)

proxygen_add_library(proxygen_utils_export)

proxygen_add_library(proxygen_utils_util_inl
  EXPORTED_DEPS
    Folly::folly_portability_windows
    Folly::folly_range
)

proxygen_add_library(proxygen_utils_sockopts
  EXPORTED_DEPS
    wangle::wangle_acceptor
    Folly::folly_conv
    Folly::folly_function
    Folly::folly_io_async_async_base
    Folly::folly_io_iobuf
    Folly::folly_memory
    Folly::folly_optional
    Folly::folly_portability_sys_resource
    Folly::folly_portability_time
    Folly::folly_random
    Folly::folly_range
    Folly::folly_string
    glog::glog
)

proxygen_add_library(proxygen_utils_state_machine
  EXPORTED_DEPS
    glog::glog
)

proxygen_add_library(proxygen_utils_test_utils
  EXPORTED_DEPS
    Folly::folly_io_iobuf
    Folly::folly_portability_sys_resource
    Folly::folly_random
    Folly::folly_range
    Folly::folly_string
)

proxygen_add_library(proxygen_utils_time
  SRCS
    HTTPTime.cpp
  DEPS
    Folly::folly_portability_time
  EXPORTED_DEPS
    Folly::folly_optional
)

proxygen_add_library(proxygen_utils_parse_url
  SRCS
    ParseURL.cpp
  DEPS
    proxygen_external_http_parser
    proxygen_utils_util_inl
    Folly::folly_portability_sockets
  EXPORTED_DEPS
    proxygen_utils_export
    Folly::folly_portability_windows
    Folly::folly_string
    glog::glog
)

proxygen_add_library(proxygen_utils_timeoutset
  SRCS
    AsyncTimeoutSet.cpp
  DEPS
    Folly::folly_io_async_request_context
    Folly::folly_scope_guard
  EXPORTED_DEPS
    proxygen_utils_time_util
    Folly::folly_io_async_async_base
    Folly::folly_io_async_delayed_destruction
)

proxygen_add_library(proxygen_utils_time_util
  EXPORTED_DEPS
    Folly::folly_portability_time
)

proxygen_add_library(proxygen_utils_trace
  SRCS
    TraceEvent.cpp
    TraceEventContext.cpp
  DEPS
    Folly::folly_json_dynamic
  EXPORTED_DEPS
    proxygen_utils_exception
    proxygen_utils_export
    proxygen_utils_time_util
    Folly::folly_conv
    Folly::folly_lang_exception
    glog::glog
)

proxygen_add_library(proxygen_utils_compression_filter_utils
  EXPORTED_DEPS
    proxygen_http_http_headers
    proxygen_http_message
    proxygen_utils_stream_compressor
    proxygen_utils_zlib_stream_compressor
    proxygen_utils_zstd_stream_compressor
)

proxygen_add_library(proxygen_utils_stream_compressor)

proxygen_add_library(proxygen_utils_stream_decompressor)

proxygen_add_library(proxygen_utils_zlib_stream
  EXPORTED_DEPS
    proxygen_utils_zlib_stream_compressor
    proxygen_utils_zlib_stream_decompressor
)

proxygen_add_library(proxygen_utils_zlib_stream_decompressor
  SRCS
    ZlibStreamDecompressor.cpp
  DEPS
    Folly::folly_io_iobuf
  EXPORTED_DEPS
    proxygen_utils_stream_decompressor
    ZLIB::ZLIB
)

proxygen_add_library(proxygen_utils_zlib_stream_compressor
  SRCS
    ZlibStreamCompressor.cpp
  DEPS
    Folly::folly_io_iobuf
  EXPORTED_DEPS
    proxygen_utils_stream_compressor
    proxygen_utils_zlib_stream_decompressor
    Folly::folly_portability_gflags
    ZLIB::ZLIB
)

proxygen_add_library(proxygen_utils_zstd_stream_compressor
  SRCS
    ZstdStreamCompressor.cpp
  EXPORTED_DEPS
    proxygen_utils_stream_compressor
    Folly::folly_compression_compression
)

proxygen_add_library(proxygen_utils_zstd_stream_decompressor
  SRCS
    ZstdStreamDecompressor.cpp
  DEPS
    Folly::folly_io_iobuf
  EXPORTED_DEPS
    proxygen_utils_stream_decompressor
    Folly::folly_memory
    ${ZSTD_LIBRARIES}
)

proxygen_add_library(proxygen_utils_rendezvous_hash
  SRCS
    RendezvousHash.cpp
  DEPS
    Folly::folly_hash_hash
)

proxygen_add_library(proxygen_utils_shared_wheel_timer
  SRCS
    WheelTimerInstance.cpp
  DEPS
    Folly::folly_io_async_event_base_manager
    Folly::folly_singleton
  EXPORTED_DEPS
    Folly::folly_io_async_async_base
)

proxygen_add_library(proxygen_utils_null_trace_event_observer
  EXPORTED_DEPS
    proxygen_utils_trace
)

proxygen_add_library(proxygen_utils_acceptor_address
  EXPORTED_DEPS
    Folly::folly_hash_hash
    Folly::folly_network_address
    glog::glog
)

proxygen_add_library(proxygen_utils_perfect_index_map
  EXPORTED_DEPS
    proxygen_utils_util_inl
    Folly::folly_fbvector
    Folly::folly_optional
    glog::glog
)

proxygen_add_library(proxygen_utils_conditional_gate
  EXPORTED_DEPS
    Folly::folly_function
    glog::glog
)

proxygen_add_library(proxygen_utils_weak_ref_counted_ptr
  EXPORTED_DEPS
    glog::glog
)

proxygen_add_library(proxygen_utils_safe_path
  SRCS
    SafePathUtils.cpp
  DEPS
    Folly::folly_container_foreach
    Folly::folly_portability_stdlib
    Folly::folly_string
    fmt::fmt
  EXPORTED_DEPS
    Folly::folly_exception_wrapper
    Folly::folly_expected
)

if(BUILD_TESTS)
  add_subdirectory(test)
endif()
