#
# $Id$
# $HeadURL$
# $Author$
# Created by Christian Ehrlicher, SLSE, 2016-02-29
#

# Suppress CMP0167 warning: FindBoost module is removed in CMake 3.30+
if(POLICY CMP0167)
  cmake_policy(SET CMP0167 OLD)
endif()

IF(${CMAKE_VERSION} VERSION_LESS "3.6.0")
  FIND_PACKAGE(Boost COMPONENTS system) # system wird nicht gebraucht, aber ohne Komponente wird das Boost::boost imported Target nicht angelegt (cmake <= 3.5.2)
ELSE()
  FIND_PACKAGE(Boost)
ENDIF()

ADD_SUBDIRECTORY(Data)
ADD_SUBDIRECTORY(Gui)
ADD_SUBDIRECTORY(Shared)


#
# Menu Edit Gui Plugin Interface
#
ADD_INTERFACE_LIBRARY(AvmMenuEditGuiPluginInterface
  ${CMAKE_CURRENT_SOURCE_DIR}/avm_menu_edit_gui_plugin_interface.h
  ${CMAKE_CURRENT_SOURCE_DIR}/..
  GuiPluginInterface TopicReplayInterface TopicEditorInterface Qt6::Core AvmShared $<IF:$<TARGET_EXISTS:Boost::boost>,Boost::boost,>
)

#
# Combat Net Radio Gui Plugin Interface
#
ADD_INTERFACE_LIBRARY(AvmCombatNetRadioGuiPluginInterface
  ${CMAKE_CURRENT_SOURCE_DIR}/avm_combat_net_radio_gui_plugin_interface.h
  ${CMAKE_CURRENT_SOURCE_DIR}/..
  GuiPluginInterface Qt6::Core
)

#
# Eloka Gui Plugin Interface
#
ADD_INTERFACE_LIBRARY(AvmElokaGuiPluginInterface
  ${CMAKE_CURRENT_SOURCE_DIR}/avm_eloka_gui_plugin_interface.h
  ${CMAKE_CURRENT_SOURCE_DIR}/..
  GuiPluginInterface
)

#
# MVS Gui Plugin Interface
#
ADD_INTERFACE_LIBRARY(AvmMvsVideoTeamGuiPluginInterface
  ${CMAKE_CURRENT_SOURCE_DIR}/avm_mvs_video_team_gui_plugin_interface.h
  ${CMAKE_CURRENT_SOURCE_DIR}/..
  GuiPluginInterface
)


#
# Data Plugin 'Interface'  -  needs export for moc (signals)
#
ADD_INTERFACE_LIBRARY(AvmDataPluginInterface
  ${CMAKE_CURRENT_SOURCE_DIR}/avm_data_plugin_interface.h
  ${CMAKE_CURRENT_SOURCE_DIR}/..
  DataPluginInterface svcAvmCommon Qt6::Core IsmDataPluginInterface
)
