#
# CMakeLists.txt for File Dialog
#
# $Id$
# $HeadURL$
# $Author$
# Created by Iuliana Ojog, SLSE, 2017-07-12
#

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


SET(ltsFileDialog_SRCS
  lts_file_dialog_widget.h
  lts_file_dialog_widget.cpp
  lts_file_dialog.h
  lts_file_dialog.cpp
  lts_dialog_model_folder.h
  lts_dialog_model_folder.cpp
  lts_dialog_model_file.h
  lts_dialog_model_file.cpp
)

NGL_WRAP_UI(ltsFileDialog_SRCS
  lts_file_dialog.ui
)

NGL_ADD_LIBRARY2(WS LtsFileDialog SHARED ${ltsFileDialog_SRCS})
if(QT6_GUI_AVAILABLE)
  NGL_TARGET_LINK_LIBRARIES(LtsFileDialog
    PRIVATE
      LtsWidgets
      LtsDataView
      LtsSession
      LtsSessionData
      nglwidgets
      ngltools
      svcFlmCommon
      svcOpmCommon
      svcExmCommon
      LtsUtilsCoreHeaderOnly
      LtsUtilsGuiConnectDialog
    PUBLIC
      Qt6::Core
      ${Qt6_Widgets}
  )
endif()
NGL_TARGET_INCLUDE_DIRECTORIES(LtsFileDialog
  PUBLIC
    ${CMAKE_CURRENT_SOURCE_DIR}/../
    ${CMAKE_SOURCE_DIR}/include/OperatorManagement/
)

# Test-Executable
NGL_ADD_EXECUTABLE(WS NO_TRANSLATION LtsFileDialogTest test.cpp)
if(QT6_GUI_AVAILABLE)
  NGL_TARGET_LINK_LIBRARIES(LtsFileDialogTest
    PRIVATE
      LtsFileDialog
      LtsWidgets
      LtsDataView
      LtsSession
      LtsSessionData
      nglwidgets
      ngltools
      nglcoreapplication
      svcFlmClient
      svcOpmClient
      svcExmClient
  #    RTI::nddscpp2
      $<IF:$<TARGET_EXISTS:ddsconnector>,ddsconnector,>
    PUBLIC
      Qt6::Core
      ${Qt6_Widgets}
  )
endif()

# Register test with CTest
if(BUILD_TESTING)
  add_test(NAME LtsFileDialogTest COMMAND $<TARGET_FILE:LtsFileDialogTest>)
  set_tests_properties(LtsFileDialogTest PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=offscreen" TIMEOUT 30)
endif()
