#
# $Id$
# $HeadURL$
# $Author$
#

SET(SRCS_hdr_only
  ${CMAKE_CURRENT_SOURCE_DIR}/data_modification_enum.h
  ${CMAKE_CURRENT_SOURCE_DIR}/dds_bitarray.h
  ${CMAKE_CURRENT_SOURCE_DIR}/dds_vector.h
  ${CMAKE_CURRENT_SOURCE_DIR}/connection.h
  ${CMAKE_CURRENT_SOURCE_DIR}/json_object.h
  ${CMAKE_CURRENT_SOURCE_DIR}/outdated_position.h
  ${CMAKE_CURRENT_SOURCE_DIR}/qbytearray_byteaccess.h
  ${CMAKE_CURRENT_SOURCE_DIR}/qpoint3d.h
  ${CMAKE_CURRENT_SOURCE_DIR}/await.h
)
ADD_LIBRARY(LtsUtilsCoreHeaderOnly INTERFACE)
TARGET_INCLUDE_DIRECTORIES(LtsUtilsCoreHeaderOnly
  INTERFACE
    ${CMAKE_CURRENT_SOURCE_DIR}/../
    ${CMAKE_CURRENT_BINARY_DIR}/../
)
TARGET_SOURCES(LtsUtilsCoreHeaderOnly INTERFACE ${SRCS_hdr_only})

SET(SRCS
  pgarray.cpp
  qplane3d.cpp
  qpoint3d.cpp
  scoped_connection.cpp
  sfm_bytemessage_converter.cpp
  promise.cpp
  lts_translatable_identifier.cpp
  lts_portrange.cpp
  #variant_operators.h
)

NGL_ADD_LIBRARY2(ALL LtsUtilsCore SHARED ${SRCS})
NGL_TARGET_INCLUDE_DIRECTORIES(LtsUtilsCore
  PUBLIC
    ${CMAKE_CURRENT_SOURCE_DIR}/../
    ${CMAKE_CURRENT_BINARY_DIR}/../
)
NGL_TARGET_LINK_LIBRARIES(LtsUtilsCore
  PUBLIC
    Qt5::Core
    LtsUtilsCoreHeaderOnly
)

#
# --- Tests --------------------------------------------------------------
#
# IF (TARGET ddscore) // does not work, not yet included
IF((BUILD_WS OR BUILD_SV) AND BUILD_TESTING)
  ADD_EXECUTABLE(utils_test
    UnitTests/utils_test.cpp
    UnitTests/utils_test.h
    promise_examples.h
    promise_examples.cpp
  )
  TARGET_LINK_LIBRARIES(utils_test
    LtsUtilsCore
    Qt5::Core
    Qt5::Test
    ddscore
  )
  ADD_TEST(NAME utils_test COMMAND $<TARGET_FILE:utils_test>)
ENDIF()
