#
# $Id$
# $HeadURL$
# $Author$
#
#
# --- Executable svcHighLevelArchitecture (svcHLA) -------------------------------------------------
#

SET(xml_FILE hla_service.xml)

SET(SRCS_exe
  aes_handler.cpp
  aes_handler.h
  dds_handler.cpp
  dds_handler.h
  main.cpp
  main_handler.cpp
  main_handler.h
  ngs_connector.cpp
  ngs_connector.h
  ngs_handler.cpp
  ngs_handler.h
#  ngs_connector_dis.cpp
#  ngs_connector_dis.h
  ppm_handler.cpp
  ppm_handler.h
#  aesmath.cpp
#  aesmath.h
  damage_model.cpp
  damage_model.h

  web_socket_handler.cpp
  web_socket_handler.h

  rpr/rpr_global.h
#  rpr/rpr_ia_actionrequest.cpp
#  rpr/rpr_ia_actionrequest.h
#  rpr/rpr_ia_actionresponse.cpp
#  rpr/rpr_ia_actionresponse.h
#  rpr/rpr_ia_acknowledge.cpp
#  rpr/rpr_ia_acknowledge.h
  rpr/rpr_ia_munitiondetonation.cpp
  rpr/rpr_ia_munitiondetonation.h
#  rpr/rpr_ia_startresume.cpp
#  rpr/rpr_ia_startresume.h
#  rpr/rpr_ia_stopfreeze.cpp
#  rpr/rpr_ia_stopfreeze.h
  rpr/rpr_ia_weaponfire.cpp
  rpr/rpr_ia_weaponfire.h
  rpr/rpr_ia_guez_init.cpp
  rpr/rpr_ia_guez_init.h
  rpr/rpr_ia_guez_requestbitereport.cpp
  rpr/rpr_ia_guez_requestbitereport.h
  rpr/rpr_ia_guez_bitereport.cpp
  rpr/rpr_ia_guez_bitereport.h
#  rpr/rpr_ia_guez_exconengagement.cpp
#  rpr/rpr_ia_guez_exconengagement.h
  rpr/rpr_ia_guez_hit.cpp
  rpr/rpr_ia_guez_hit.h

  rpr/rpr_observer_aggregateentity_object_cb.h
  rpr/rpr_observer_aggregateentity_object_instance_cb.h
  rpr/rpr_observer_aircraft_cb_notifier.h
  rpr/rpr_observer_aircraft_object_cb.h
  rpr/rpr_observer_aircraft_object_instance_cb.h
  rpr/rpr_observer_baseentity_object_cb.h
  rpr/rpr_observer_baseentity_object_instance_cb.h
  rpr/rpr_observer_groundvehicle_cb_notifier.h
  rpr/rpr_observer_groundvehicle_object_cb.h
  rpr/rpr_observer_groundvehicle_object_instance_cb.h
  rpr/rpr_observer_human_cb_notifier.h
  rpr/rpr_observer_human_object_cb.h
  rpr/rpr_observer_human_object_instance_cb.h
  rpr/rpr_observer_lifeform_object_cb.h
  rpr/rpr_observer_lifeform_object_instance_cb.h
  rpr/rpr_observer_object_cb.h
  rpr/rpr_observer_object_instance_cb.h
  rpr/rpr_observer_physicalentity_object_cb.h
  rpr/rpr_observer_physicalentity_object_instance_cb.h
  rpr/rpr_observer_platform_object_cb.h
  rpr/rpr_observer_platform_object_instance_cb.h
#  rpr/rpr_observer_surfacevessel_cb_notifier.h
#  rpr/rpr_observer_surfacevessel_object_cb.h
#  rpr/rpr_observer_surfacevessel_object_instance_cb.h
#  rpr/rpr_observer_guez_aircraft_cb_notifier.h
#  rpr/rpr_observer_guez_aircraft_object_cb.h
#  rpr/rpr_observer_guez_aircraft_object_instance_cb.h
  rpr/rpr_observer_guez_groundvehicle_cb_notifier.h
  rpr/rpr_observer_guez_groundvehicle_object_cb.h
  rpr/rpr_observer_guez_groundvehicle_object_instance_cb.h
  rpr/rpr_observer_guez_human_cb_notifier.h
  rpr/rpr_observer_guez_human_object_cb.h
  rpr/rpr_observer_guez_human_object_instance_cb.h
  rpr/rpr_observer_guez_observer_controller_cb_notifier.h
  rpr/rpr_observer_guez_observer_controller_object_cb.h
  rpr/rpr_observer_guez_observer_controller_object_instance_cb.h

  rpr/rpr_observer_environment_object_object_cb.h
  rpr/rpr_observer_environment_object_object_instance_cb.h
  rpr/rpr_observer_areal_object_object_cb.h
  rpr/rpr_observer_areal_object_object_instance_cb.h
  rpr/rpr_observer_other_areal_object_object_cb.h
  rpr/rpr_observer_other_areal_object_object_instance_cb.h

  rpr/rpr_observer_point_object_object_cb.h
  rpr/rpr_observer_point_object_object_instance_cb.h
  rpr/rpr_observer_other_point_object_object_cb.h
  rpr/rpr_observer_other_point_object_object_instance_cb.h

  rpr/rpr_observer_guez_minefield_cb_notifier.h
  rpr/rpr_observer_guez_minefield_object_cb.h
  rpr/rpr_observer_guez_minefield_object_instance_cb.h
  rpr/rpr_observer_guez_minefield_breach_cb_notifier.h
  rpr/rpr_observer_guez_minefield_breach_object_cb.h
  rpr/rpr_observer_guez_minefield_breach_object_instance_cb.h
#  rpr/rpr_observer_guez_fire_support_cb_notifier.h
#  rpr/rpr_observer_guez_fire_support_object_cb.h
#  rpr/rpr_observer_guez_fire_support_object_instance_cb.h
#  rpr/rpr_observer_guez_fire_support_single_shot_cb_notifier.h
#  rpr/rpr_observer_guez_fire_support_single_shot_object_cb.h
#  rpr/rpr_observer_guez_fire_support_single_shot_object_instance_cb.h
#  rpr/rpr_observer_guez_chemical_agent_area_cb_notifier.h
#  rpr/rpr_observer_guez_chemical_agent_area_object_cb.h
#  rpr/rpr_observer_guez_chemical_agent_area_object_instance_cb.h
#  rpr/rpr_observer_guez_nuclear_agent_area_cb_notifier.h
#  rpr/rpr_observer_guez_nuclear_agent_area_object_cb.h
#  rpr/rpr_observer_guez_nuclear_agent_area_object_instance_cb.h

)
# Due to debug output for EntityTypeStruct
SET_SOURCE_FILES_PROPERTIES(ngs_connector.cpp PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE)

# make sure xml file is properly installed
CODEGEN_HANDLE_SVC_XML(SRCS_exe ${xml_FILE})

NGL_ADD_SVC_ICON(SRCS_exe)
NGL_ADD_EXECUTABLE(HLA svcHighLevelArchitecture ${SRCS_exe})
NGL_TARGET_LINK_LIBRARIES(svcHighLevelArchitecture
  ddsconnector
  LtsCommandLineParser
  LtsCoordTrans
  nglcoreapplication
  NGLLogger
  nglsettings
  Qt5::Core
  Qt5::Network
  Qt5::WebSockets
  svcAesClient
  svcCoreClient
  svcExmClient
  svcPdmClient
  svcPpmClient
  svcTabServer
  svcTabClient
  ngltools
  LtsUtilsDds
  NGS::NGS
  HlaCommon
  tabTelegrams
)

NGL_INSTALL_TARGET(svcHighLevelArchitecture)
NGL_INSTALL(HLA FILES
  log4cxx_hla.props
  swconf.cfg
  DESTINATION bin)
NGL_INSTALL(HLA FILES
  RPRFOM20d17E_saabNov2021.xml
  DESTINATION bin RENAME RPRFOM20d17E.xml)
NGL_ADD_TARGET_LINK(svcHighLevelArchitecture pHLA)
NGL_INSTALL(HLA FILES
  lts-cc.hla.conf
  DESTINATION . RENAME lts-cc.hla.conf.distrib)
