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

IF(BUILD_RPM)
  IF(UNIX)
    OPTION(BUILD_USE_MAP_CACHE "Use MapCache (GUEZ_ONLY) via _pname" ON)
  ELSE()
    OPTION(BUILD_USE_MAP_CACHE "Use MapCache (GUEZ_ONLY) via _pname" OFF)
  ENDIF()
ELSE()
  # !BUILD_RPM entspricht LTS_DEBUG
  OPTION(BUILD_USE_MAP_CACHE "Use MapCache (GUEZ_ONLY) via LTS_debug)" ON)
ENDIF()

MESSAGE(STATUS "Enable MapCache: ${BUILD_USE_MAP_CACHE})")
IF (BUILD_USE_MAP_CACHE)
  add_definitions(-DUSE_MAP_CACHE)
ENDIF()


SET(sitmap_dds_SRCS

  situation_map_init.cpp
  situation_map_init.h
  situation_map_init_p.h

  MapObjectSelection/map_object_model.cpp
  MapObjectSelection/map_object_model.h
  MapObjectSelection/map_object_selection_widget.cpp
  MapObjectSelection/map_object_selection_widget.h
  MapObjectSelection/map_object_custom_view.cpp
  MapObjectSelection/map_object_custom_view.h

  AdapterDds/adapter_dds.cpp
  AdapterDds/adapter_dds.h
  AdapterDds/map_object_type.h
  AdapterDds/aes_to_situation_map_tmpl.h
  AdapterDds/air_support_impact_to_map.cpp
  AdapterDds/air_support_impact_to_map.h
  AdapterDds/emergency_call_to_map.cpp
  AdapterDds/emergency_call_to_map.h
  AdapterDds/bccontamination_to_map.cpp
  AdapterDds/bccontamination_to_map.h
  AdapterDds/borderline_to_map.cpp
  AdapterDds/borderline_to_map.h
  AdapterDds/buildings_to_map.cpp
  AdapterDds/buildings_to_map.h
  AdapterDds/buildinghitlineinfo_to_map.cpp
  AdapterDds/buildinghitlineinfo_to_map.h
  AdapterDds/building_contamination.cpp
  AdapterDds/building_contamination.h
  AdapterDds/building_ownership.cpp
  AdapterDds/building_ownership.h
  AdapterDds/booby_traps_to_map.cpp
  AdapterDds/booby_traps_to_map.h
  AdapterDds/special_areas_to_map.cpp
  AdapterDds/special_areas_to_map.h
  AdapterDds/danger_area_to_map.cpp
  AdapterDds/danger_area_to_map.h
  AdapterDds/dus_single_mine_to_map.cpp
  AdapterDds/dus_single_mine_to_map.h
  AdapterDds/explosion_area_to_map.cpp
  AdapterDds/explosion_area_to_map.h
  AdapterDds/explosion_cluster_to_map.cpp
  AdapterDds/explosion_cluster_to_map.h
  AdapterDds/effect_cluster_to_map.cpp
  AdapterDds/effect_cluster_to_map.h
  AdapterDds/explosion_single_to_map.cpp
  AdapterDds/explosion_single_to_map.h
#  AdapterDds/explosion_single_central_to_map.cpp
#  AdapterDds/explosion_single_central_to_map.h
  AdapterDds/functional_area_to_map.cpp
  AdapterDds/functional_area_to_map.h
  AdapterDds/gas_pipe_to_map.cpp
  AdapterDds/gas_pipe_to_map.h
  AdapterDds/guez_ied_to_map.cpp
  AdapterDds/guez_ied_to_map.h

  AdapterDds/guez_nasat_9liner.cpp
  AdapterDds/guez_nasat_9liner.h

  AdapterDds/hitlineinfo_to_map.cpp
  AdapterDds/hitlineinfo_to_map.h
  AdapterDds/mine_area_null_to_map.cpp
  AdapterDds/mine_area_null_to_map.h
  AdapterDds/mine_area_to_map.cpp
  AdapterDds/mine_area_to_map.h
  AdapterDds/mine_corridor_to_map.cpp
  AdapterDds/mine_corridor_to_map.h
  AdapterDds/mounting_point_to_map.cpp
  AdapterDds/mounting_point_to_map.h
  AdapterDds/sound_area_to_map.cpp
  AdapterDds/sound_area_to_map.h
  AdapterDds/mse_point_to_map.cpp
  AdapterDds/mse_point_to_map.h
  AdapterDds/mse_bridge_to_map.cpp
  AdapterDds/mse_bridge_to_map.h
  AdapterDds/ncontamination_to_map.cpp
  AdapterDds/ncontamination_to_map.h
  AdapterDds/off_route_to_map.cpp
  AdapterDds/off_route_to_map.h
  AdapterDds/participant_to_map.cpp
  AdapterDds/participant_to_map.h
  AdapterDds/pdm_handler.cpp
  AdapterDds/pdm_handler.h
  AdapterDds/shootback_area_to_map.cpp
  AdapterDds/shootback_area_to_map.h
  AdapterDds/recon_area_to_map.cpp
  AdapterDds/recon_area_to_map.h
  AdapterDds/technical_area_to_map.cpp
  AdapterDds/technical_area_to_map.h
  AdapterDds/training_area_to_map.cpp
  AdapterDds/training_area_to_map.h
  AdapterDds/plugin_provider.h
  AdapterDds/sim_to_situation_map_tmpl.h
  AdapterDds/unified_map_object_data.h
  AdapterDds/charge_effect_to_map.cpp
  AdapterDds/charge_effect_to_map.h
)
NGL_WRAP_UI(sitmap_dds_SRCS
  MapObjectSelection/map_object_selection_dialog.ui
  MapObjectSelection/map_object_custom_view.ui
)

NGL_ADD_LIBRARY2(WS SitmapDds SHARED ${sitmap_dds_SRCS})
NGL_TARGET_INCLUDE_DIRECTORIES(SitmapDds
  PUBLIC
    ${CMAKE_CURRENT_SOURCE_DIR}/../
)
NGL_TARGET_LINK_LIBRARIES(SitmapDds
  PUBLIC
    Qt5::Core
    situationMap
    LtsUtilsGuiDds       # RequestHelper
  PRIVATE
    svcMapDummy
    situationMapFunctionDialog # remove me here plz
    LtsCoordTrans
    LtsDataView
    LtsSessionData
    situationMapObjects
    LtsUtilsSettings
    #needed through AdapterDds sources
    AlmDataPluginInterface
    AsmDataPluginInterface
    BldDataPluginInterface
    ExmDataPluginInterface
    FltDataPluginInterface
    IsmDataPluginInterface
    GnaDataPluginInterface
    CmoDataPluginInterface
    SmoCheckButtonHandler
    TgtDataPluginInterface
    IsmShared
    svcAesClient
    svcCesClient
    svcGimClient
    svcPpmClient
    svcSrpClient

)

#
# SitmapGuiPlugin
#
SET(sitmap_edit_gui_SRCS
  sitmap_gui_plugin.cpp
  sitmap_gui_plugin.h
  sitmap_register_app_handler.cpp
  sitmap_register_app_handler.h

  sitmap_widget_control.cpp
  sitmap_widget_control.h
  sitmap_layer_control.cpp
  sitmap_layer_control.h
  ConfigureUrl/sitmap_configure_url_model.cpp
  ConfigureUrl/sitmap_configure_url_model.h
  ConfigureUrl/sitmap_configure_url_widget.cpp
  ConfigureUrl/sitmap_configure_url_widget.h
  ConfigureUrl/sitmap_configure_urls.cpp
  ConfigureUrl/sitmap_configure_urls.h
  layers_model.cpp
  layers_model.h

  terrain_profile_handler.cpp
  terrain_profile_handler.h

  viewshed_dialog.h

  plugin_provider_lts_session.h
  plugin_provider_lts_session.cpp

  TopicEditor/topic_editor.h
  TopicEditor/topic_editor.cpp
)

NGL_WRAP_UI(sitmap_edit_gui_SRCS
  ConfigureUrl/sitmap_configure_url_widget.ui
  ConfigureUrl/sitmap_configure_single_url.ui
  ConfigureUrl/sitmap_configure_urls.ui
  sitmap_widget_control.ui
  sitmap_layer_control.ui

  TopicEditor/topic_editor.ui
)

NGL_ADD_LIBRARY2(WS SitmapGuiPlugin MODULE ${sitmap_edit_gui_SRCS})
NGL_TARGET_LINK_LIBRARIES(SitmapGuiPlugin
  SitmapDds

  svcMapDummy
  situationMapCommon
  situationMap
  situationMapObjects
  NGLLogger
  LtsPrinting
  LtsSession
  SituationMapGuiPluginInterface
  Qt5::Widgets
  LtsWidgets
  LtsCoordTrans
  LtsAppDescriptor
  LtsAppManager
  LtsUtilsSettings
  TopicEditorBase
  FltFilterChange
  LtsNotification

  # only to create a menu entry - should be done by the bdv gui plugin...
  BdvViewerGuiPluginInterface

  AesDataPluginInterface
  AlmDataPluginInterface
  AsmDataPluginInterface
  BldDataPluginInterface
  CesDataPluginInterface
  FltDataPluginInterface
  GimDataPluginInterface
  GnaDataPluginInterface
  IsmDataPluginInterface
  OpmDataPluginInterface
  PpmDataPluginInterface
  TgtDataPluginInterface
  CmoDataPluginInterface
)
