project(tw_message_protocol)

file(GLOB FILES
    src/*.cpp
)

file(GLOB HEADERS
    include/message_protocol/*.hpp
)

add_library(${PROJECT_NAME} OBJECT ${FILES})
add_library(tw::message_protocol ALIAS ${PROJECT_NAME})
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
    ${PROJECT_SOURCE_DIR}/include/
)

target_link_libraries(${PROJECT_NAME}
    PUBLIC
    tw::io
    tw::quicr
    tl::expected
    spdlog::spdlog
)

add_subdirectory(tests)
