#
# $Id$
# $HeadURL$
# $Author$
#
# Created by Mike Wille, SLSE, 2016-03-17
#

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


add_library(ExportBdvTopicSetting INTERFACE)
target_compile_definitions(ExportBdvTopicSetting INTERFACE EXPORT_BDV_TOPIC_AS_JSON)

SET(pre_script_gui_SRCS
  pre_journal_dialog.h
  pre_journal_dialog.cpp
  pre_journal_types.h
  pre_journal_types.cpp
  pre_screen.h
  pre_screen.cpp
  pre_screen_recorder.h
  pre_screen_recorder.cpp
  pre_screen_shotter.h
  pre_screen_shotter.cpp
  pre_script_timeline_gui_plugin.cpp
  pre_script_timeline_gui_plugin.h
  pre_script_delegate.cpp
  pre_script_delegate.h
  pre_script_dialog.h
  pre_script_dialog.cpp
  pre_script_dialog_drag_handler.cpp
  pre_script_dialog_drag_handler.h
  pre_script_dialog_resize_handler.cpp
  pre_script_dialog_resize_handler.h
  pre_script_dialog_select_handler.cpp
  pre_script_dialog_select_handler.h
  pre_script_model.cpp
  pre_script_model.h
  pre_topic_recorder.cpp
  pre_topic_recorder.h
  pre_topic_shotter.cpp
  pre_topic_shotter.h
  pre_storyboard.cpp
  pre_storyboard.h
  pre_topic_item.cpp
  pre_topic_item.h
  pre_topic_track.cpp
  pre_topic_track.h
  pre_utils.cpp
  pre_utils.h
)

QT5_WRAP_UI(pre_script_gui_SRCS
  pre_storyboard.ui
  pre_script_dialog.ui
  pre_journal_dialog.ui
)

NGL_ADD_LIBRARY(WS PreScriptTimelineGuiPlugin MODULE ${pre_script_gui_SRCS})
NGL_TARGET_COMPILE_DEFINITIONS(PreScriptTimelineGuiPlugin PRIVATE L=QStringLiteral)
if(QT6_GUI_AVAILABLE)
  NGL_TARGET_LINK_LIBRARIES(PreScriptTimelineGuiPlugin
    NGLLogger
    LtsSession
    PreDataPluginInterface
    PreScriptTimelineGuiPluginInterface
    PreGuiCommon
    PreGuiScriptCommon
    AvmShared
    LtsTimeline
    svcPreCommon
    ${Qt6_Widgets}
    LtsWidgets
    LtsDataView
    LtsSessionData
    ProjectConfig
    LtsScriptTimeline
    LtsUtilsCoreHeaderOnly
    LtsMultiMonitor
    Thp2Common
  
    LtsAppManager # start replay app
    LtsSessionData # set partition preset for replay app
    TopicEditorInterface
    TopicEditorBase
    LtsPluginManager # manipulate apps
  
    # for Topics
    EvlGuiPluginInterface
    SrmDataPluginInterface # start playback
    LtsPrinting
    SituationMapGuiPluginInterface
  
    # Script Player Controls:
    SrpGuiPluginInterface
  
    # file topic
    FlmExplorerGuiPluginInterface
    # building topic
    BdvViewerGuiPluginInterface
    # report topic
    RepGuiPluginInterface
    LtsReportDisplay
    MrkCommon # for ApplyFilter @ SitmapFilter
    LtsUtilsSettings
    ngltools # DTG
    situationMap # set time string on map
    ExportBdvTopicSetting
  )
endif()

NGL_INSTALL_TARGET(PreScriptTimelineGuiPlugin)
