#
# CMakeLists.txt for Timeline Library
#
# $Id$
# $HeadURL$
# $Author$
#
# Created by Mike Wille, SLSE, 2017-02-10
#

# Make ${Qt6_Gui} optional
if(QT6_GUI_AVAILABLE AND TARGET Qt6::Gui)
  set(Qt6_Gui ${Qt6_Gui})
else()
  set(Qt6_Gui "")
endif()

# Make ${Qt6_Widgets} optional
if(QT6_GUI_AVAILABLE AND TARGET Qt6::Widgets)
  set(Qt6_Widgets ${Qt6_Widgets})
else()
  set(Qt6_Widgets "")
endif()


SET(timeline_SRCS
  EventDelegate.cpp
  EventTools.cpp
  Item.cpp
  PassiveEventContainer.cpp
  TimelineWidget.cpp
  TimelineHeaderView.cpp
  TimelineIndicator.cpp
  TestTimelineModel.cpp
  AbstractTimelineModel.cpp
  TimelineView.cpp
  Event.cpp
  EventGraphic.cpp

  EventDelegate.h
  EventList.h
  EventTools.h
  Item.h
  PassiveEventContainer.h
  TimelineWidget.h
  TimelineHeaderView.h
  TimelineIndicator.h
  AbstractTimelineModel.h
  TimelineView.h
  #timeline_export.h
  Event.h
  TestTimelineModel.h
  EventGraphic.h
  LineMap.h
)

SET(timeline_UICS
  Ui/TimelineWidgetUi.ui
)

NGL_WRAP_UI(timeline_SRCS ${timeline_UICS})

NGL_ADD_LIBRARY2(WS LtsTimelineClassic SHARED ${timeline_SRCS} ${timeline_UICS})

# Qt6 AutoUic configuration for UI files in Ui/ subdirectory
set_target_properties(LtsTimelineClassic PROPERTIES
  AUTOUIC ON
  AUTOUIC_SEARCH_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/Ui"
)

# Generate export header for shared library
include(GenerateExportHeader)
generate_export_header(LtsTimelineClassic
  EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/ltstimelineclassic_export.h"
)

NGL_TARGET_INCLUDE_DIRECTORIES(LtsTimelineClassic
  PUBLIC
    ${CMAKE_CURRENT_SOURCE_DIR}/../
    ${CMAKE_CURRENT_BINARY_DIR}
)

if(QT6_GUI_AVAILABLE)
  NGL_TARGET_LINK_LIBRARIES(LtsTimelineClassic
    PRIVATE
      NGLLogger
      ngltools # DTG
      Qt6::Core
      ${Qt6_Gui}
      ${Qt6_Widgets}
      LtsSessionDataDds
  )
endif()



