set(MICROSTRAIN_SOCKET_LIBRARY "microstrain_socket" CACHE INTERNAL "Name of the MicroStrain TCP socket connections library")
mark_as_advanced(MICROSTRAIN_SOCKET_LIBRARY)

set(MICROSTRAIN_SOCKET_SOURCES
    "${CMAKE_CURRENT_LIST_DIR}/tcp_socket.h"
    "${CMAKE_CURRENT_LIST_DIR}/tcp_socket.c"
)

add_library(${MICROSTRAIN_SOCKET_LIBRARY}
    "${MICROSTRAIN_SOCKET_SOURCES}"
)

if(MSVC)
    source_group(TREE ${MICROSTRAIN_SRC_DIR} FILES ${MICROSTRAIN_SOCKET_SOURCES})
endif()

target_compile_features(${MICROSTRAIN_SOCKET_LIBRARY} PUBLIC c_std_11)

target_link_libraries(${MICROSTRAIN_SOCKET_LIBRARY} PUBLIC ${MICROSTRAIN_LIBRARY})

target_compile_definitions(${MICROSTRAIN_SOCKET_LIBRARY}
    PUBLIC "MICROSTRAIN_ENABLE_TCP=1"
    PRIVATE ${MICROSTRAIN_PRIVATE_COMPILE_DEFINITIONS}
)

target_compile_options(${MICROSTRAIN_SOCKET_LIBRARY} PRIVATE ${MICROSTRAIN_PRIVATE_COMPILE_OPTIONS})

if(WIN32)
    target_link_libraries(${MICROSTRAIN_SOCKET_LIBRARY} PUBLIC "ws2_32")
endif()

set(MICROSTRAIN_LIBRARIES_TMP ${MICROSTRAIN_LIBRARIES_TMP} ${MICROSTRAIN_SOCKET_LIBRARY} PARENT_SCOPE)

#
# Installation
#

include(microstrain_utilities)
microstrain_setup_library_install(${MICROSTRAIN_SOCKET_LIBRARY} ${MICROSTRAIN_SRC_DIR})
