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

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

mvfst_add_library(mvfst_common_mvfst_check
  EXPORTED_DEPS
    mvfst_logging_config
    ${GLOG_LIBRARIES}
)

mvfst_add_library(mvfst_common_function_ref
  EXPORTED_DEPS
    mvfst_common_mvfst_check
)

mvfst_add_library(mvfst_common_mvfst_logging
  EXPORTED_DEPS
    mvfst_common_mvfst_check
    mvfst_logging_config
    Folly::folly_logging_logging
    ${GLOG_LIBRARIES}
)

mvfst_add_library(mvfst_common_interval_set
  EXPORTED_DEPS
    mvfst_common_circular_deque
    mvfst_common_expected
    mvfst_common_mvfst_logging
)

mvfst_add_library(mvfst_common_quic_buffer
  SRCS
    QuicBuffer.cpp
  DEPS
    mvfst_common_mvfst_logging
    mvfst_logging_oops_logger
  EXPORTED_DEPS
    Folly::folly_portability_sys_uio
)

mvfst_add_library(mvfst_common_variant)

mvfst_add_library(mvfst_common_buf_accessor
  SRCS
    BufAccessor.cpp
  DEPS
    mvfst_common_mvfst_logging
  EXPORTED_DEPS
    mvfst_constants
    Folly::folly_io_iobuf
    Folly::folly_lang_align
)

mvfst_add_library(mvfst_common_buf_util
  SRCS
    BufUtil.cpp
    ChainedByteRange.cpp
  EXPORTED_DEPS
    mvfst_common_mvfst_logging
    mvfst_constants
    Folly::folly_io_iobuf
    Folly::folly_range
)

mvfst_add_library(mvfst_common_enum_array
  EXPORTED_DEPS
    Folly::folly_portability
    ${GLOG_LIBRARIES}
)

mvfst_add_library(mvfst_common_socket_util
  EXPORTED_DEPS
    mvfst_common_expected
    mvfst_exception
    Folly::folly_io_socket_option_map
    Folly::folly_net_net_ops
)

mvfst_add_library(mvfst_common_string_utils
  SRCS
    StringUtils.cpp
  DEPS
    mvfst_constants
    fmt::fmt
  EXPORTED_DEPS
    mvfst_common_expected
    mvfst_exception
)

mvfst_add_library(mvfst_common_linux_kernel_version
  SRCS
    LinuxKernelVersion.cpp
  DEPS
    Folly::folly_synchronization_call_once
  EXPORTED_DEPS
    mvfst_common_optional
)

mvfst_add_library(mvfst_common_circular_deque
  EXPORTED_DEPS
    mvfst_common_mvfst_logging
    ${GLOG_LIBRARIES}
)

mvfst_add_library(mvfst_common_network_data
  EXPORTED_DEPS
    mvfst_common_buf_util
    mvfst_common_optional
    mvfst_common_time_points
    mvfst_config
    mvfst_constants
    Folly::folly_portability_sockets
)

mvfst_add_library(mvfst_common_time_points
  EXPORTED_DEPS
    mvfst_common_optional
    mvfst_constants
)

mvfst_add_library(mvfst_common_time_util
  EXPORTED_DEPS
    mvfst_constants
)

mvfst_add_library(mvfst_common_transport_knobs
  SRCS
    TransportKnobs.cpp
  DEPS
    mvfst_common_mvfst_logging
    mvfst_constants
    Folly::folly_dynamic
  EXPORTED_DEPS
    mvfst_common_optional
)

mvfst_add_library(mvfst_common_optional
  EXPORTED_DEPS
    mvfst_config
)

mvfst_add_library(mvfst_common_contiguous_cursor
  SRCS
    ContiguousCursor.cpp
  DEPS
    Folly::folly_likely
  EXPORTED_DEPS
    mvfst_constants
    Folly::folly_lang_bits
    Folly::folly_utility
)

mvfst_add_library(mvfst_common_expected
  EXPORTED_DEPS
    mvfst_common_third_party_expected
)

mvfst_add_library(mvfst_common_quic_iobuf_queue
  SRCS
    QuicIOBufQueue.cpp
  EXPORTED_DEPS
    mvfst_common_quic_buffer
)

add_subdirectory(address)
add_subdirectory(events)
add_subdirectory(testutil)
add_subdirectory(third-party)
add_subdirectory(udpsocket)

add_subdirectory(test)
