project(tw_network)


add_subdirectory(tests)

file(GLOB FILES
    src/*.cpp
    src/protocol/quicr/*.cpp
    src/frames/*.cpp
)

file(GLOB HEADERS
    include/*.hpp
    include/exception/*.hpp
    include/metrics/*.hpp
    include/protocol/quicr/*.hpp
)

add_library(${PROJECT_NAME} OBJECT ${FILES})
add_library(tw::network ALIAS tw_network)
target_sources(${PROJECT_NAME}
    PUBLIC FILE_SET HEADERS
    BASE_DIRS include
    FILES ${HEADERS})

set_target_properties(${PROJECT_NAME} PROPERTIES POSITION_INDEPENDENT_CODE 1)

target_include_directories(${PROJECT_NAME}
    PUBLIC
    ./include/
)

target_link_libraries(${PROJECT_NAME}
    PUBLIC
    spdlog::spdlog
    tw::io
    tw::protocol
    tw::message_protocol
    tw::quicr
    tl::expected
    Tracy::TracyClient
    TracyClient
    EnTT::EnTT
)
