OPTION (INCLUDE_TCP "Include the TCP transport layer" ON)
OPTION (INCLUDE_UDP "Include the UDP transport layer" ON)

INCLUDE_DIRECTORIES (${PROJECT_BINARY_DIR}/libplayercore)

IF (PLAYER_OS_QNX)
    SET (socketLibs socket)
    SET (socketLibsFlags -lsocket)
ELSEIF (PLAYER_OS_SOLARIS)
    SET (socketLibs socket nsl)
    SET (socketLibsFlags "-lsocket -lnsl")
ELSE (PLAYER_OS_QNX)
    SET (socketLibs)
    SET (socketLibsFlags)
ENDIF (PLAYER_OS_QNX)

IF (INCLUDE_TCP)
    OPTION (ENABLE_TCP_NODELAY "Turn off Nagel's buffering algorithm (which may increase socket latency when used)" OFF)

    SET (playertcpSrcs socket_util.c playertcp.cc remote_driver.cc)
    IF (NOT HAVE_POLL)
      SET (playertcpSrcs ${playertcpSrcs} ${PROJECT_SOURCE_DIR}/replace/poll.c)
    ENDIF (NOT HAVE_POLL)
    IF (NOT HAVE_COMPRESSBOUND)
      SET (playertcpSrcs ${playertcpSrcs} ${PROJECT_SOURCE_DIR}/replace/compressBound.c)
    ENDIF (NOT HAVE_COMPRESSBOUND)
    PLAYER_ADD_LIBRARY (playertcp ${playertcpSrcs})
    TARGET_LINK_LIBRARIES (playertcp playercore playererror playerutils playerxdr ${SOCKET_LIBS})
    IF (SOCKET_LIBS)
        PLAYER_ADD_LINK_LIB (${SOCKET_LIBS})
    ENDIF (SOCKET_LIBS)
    IF (HAVE_Z)
        TARGET_LINK_LIBRARIES (playertcp z)
        PLAYER_ADD_LINK_LIB (z)
        SET (zLibFlag -lz)
    ENDIF (HAVE_Z)
    IF (PLAYER_OS_SOLARIS)
        TARGET_LINK_LIBRARIES (playertcp rt)
        PLAYER_ADD_LINK_LIB (rt)
        SET (rtLibFlag -lrt)
    ENDIF (PLAYER_OS_SOLARIS)
    PLAYER_MAKE_PKGCONFIG ("playertcp" "Player TCP messaging library - part of the Player Project"
                           "playererror playercore" "" "" "${zLibFlag} ${rtLibFlag} ${SOCKET_LIBS_FLAGS}")

    PLAYER_INSTALL_HEADERS (playertcp playertcp.h)
ENDIF (INCLUDE_TCP)

IF (INCLUDE_UDP)
    SET (playerudpSrcs playerudp.cc)
    IF (NOT HAVE_POLL)
      SET(playerudpSrcs ${playerudpSrcs} ${PROJECT_SOURCE_DIR}/replace/poll.c)
    ENDIF  (NOT HAVE_POLL)
    IF (NOT HAVE_COMPRESSBOUND)
      SET (playerudpSrcs ${playerudpSrcs} ${PROJECT_SOURCE_DIR}/replace/compressBound.c)
    ENDIF (NOT HAVE_COMPRESSBOUND)
    PLAYER_ADD_LIBRARY (playerudp ${playerudpSrcs})
    TARGET_LINK_LIBRARIES (playerudp playercore playererror playerutils playerxdr ${SOCKET_LIBS} z)
    IF (SOCKET_LIBS)
        PLAYER_ADD_LINK_LIB (${SOCKET_LIBS} z)
    ENDIF (SOCKET_LIBS)
    PLAYER_MAKE_PKGCONFIG ("playerudp" "Player UDP messaging library - part of the Player Project"
                           "playererror playercore" "" "" "-lz ${SOCKET_LIBS_FLAGS}")

    PLAYER_INSTALL_HEADERS (playertcp playerudp.h)
ENDIF (INCLUDE_UDP)
