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

# Build this target as separate translation units (NOT a unity build). It links the
# ddsftc INTERFACE target, which propagates generic_ftc.cpp /
# generic_ftc_threading.cpp as INTERFACE sources (legacy design: consumers compile
# the generic FTC implementation themselves, one TU per file, hidden visibility).
# A unity build concatenates those .cpp's into this target's single TU, and LTO
# (USE_IPO) then reports "multiple definition of Threading::..." from the same
# object. Separate TUs restore the legacy per-file structure (behavior-neutral).
set(CMAKE_UNITY_BUILD FALSE)

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


SET(pdm_combobox_gui_SRCS
  pdm_combobox_foreign_gui_interface_impl.cpp
  pdm_combobox_foreign_gui_interface_impl.h
  pdm_combobox.cpp
  pdm_combobox.h
  pdm_charge_selector.cpp
  pdm_charge_selector.h
)
NGL_WRAP_UI(pdm_combobox_gui_SRCS pdm_charge_selector.ui)
NGL_ADD_LIBRARY(WS PdmComboBoxGui STATIC ${pdm_combobox_gui_SRCS})

NGL_TARGET_INCLUDE_DIRECTORIES(PdmComboBoxGui
  PUBLIC
    ${CMAKE_CURRENT_SOURCE_DIR}/../../..
    ${CMAKE_SOURCE_DIR}/Z/src
)
if(QT6_GUI_AVAILABLE)
  NGL_TARGET_LINK_LIBRARIES(PdmComboBoxGui
    PRIVATE
      ${Qt6_Widgets}
      LtsUtilsSettings
    PUBLIC
      PdmGuiPluginInterface
      Qt6::Core
  )
endif()
IF(BUILD_RTI AND TARGET svcPdmCommon)
  # Get include directories from svcPdmCommon (contains export header location)
  GET_TARGET_PROPERTY(SVCPDMCOMMON_INCLUDE_DIRS svcPdmCommon INTERFACE_INCLUDE_DIRECTORIES)
  NGL_TARGET_INCLUDE_DIRECTORIES(PdmComboBoxGui
    PUBLIC
      ${SVCPDMCOMMON_INCLUDE_DIRS}
  )
  NGL_TARGET_LINK_LIBRARIES(PdmComboBoxGui
    PUBLIC
      svcPdmClient
      svcPdmCommon
  )
ENDIF()

SET(pdm_combobox_gui_plugin_SRCS
  pdm_combobox_gui_plugin.cpp
  pdm_combobox_gui_plugin.h
)
NGL_ADD_LIBRARY(WS PdmComboBoxGuiPlugin MODULE ${pdm_combobox_gui_plugin_SRCS})
NGL_TARGET_LINK_LIBRARIES(PdmComboBoxGuiPlugin
  LtsSession
  NGLLogger
  PdmComboBoxGui
  PdmDataPluginInterface
)

NGL_INSTALL_TARGET(PdmComboBoxGuiPlugin)


