#
# $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
  damage_model.cpp
  damage_model.h
  socketreader.cpp
  socketreader.h

  web_socket_handler.cpp
  web_socket_handler.h

  rpr/rpr_global.h
  rpr/rpr_ia_munitiondetonation.cpp
  rpr/rpr_ia_munitiondetonation.h
  rpr/rpr_ia_weaponfire.cpp
  rpr/rpr_ia_weaponfire.h
  rpr/rpr_ia_engagementreply.cpp
  rpr/rpr_ia_engagementreply.h
  rpr/rpr_ia_eventreport.cpp
  rpr/rpr_ia_eventreport.h
  rpr/rpr_ia_actionrequest.cpp
  rpr/rpr_ia_actionrequest.h
  rpr/rpr_ia_data.cpp
  rpr/rpr_ia_data.h

  rpr/rpr_observer_object_cb.h
  rpr/rpr_observer_object_instance_cb.h

    rpr/rpr_observer_embeddedsystem_object_cb.h
    rpr/rpr_observer_embeddedsystem_object_instance_cb.h

      rpr/rpr_observer_designator_cb_notifier.h
      rpr/rpr_observer_designator_object_cb.h
      rpr/rpr_observer_designator_object_instance_cb.h

    rpr/rpr_observer_baseentity_object_cb.h
    rpr/rpr_observer_baseentity_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_aircraft_object_cb.h
          rpr/rpr_observer_aircraft_object_instance_cb.h

            rpr/rpr_observer_longbow_apache_cb_notifier.h
            rpr/rpr_observer_longbow_apache_object_cb.h
            rpr/rpr_observer_longbow_apache_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_lifeform_object_cb.h
        rpr/rpr_observer_lifeform_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

)
# 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_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_ADD_SVC_ICON({SRCS_exe})
NGL_INSTALL_TARGET(svcHighLevelArchitecture)
NGL_INSTALL(HLA FILES
  log4cxx_hla.props
  swconf.cfg
  DESTINATION bin)
NGL_INSTALL(HLA FILES
  RPRFOM20d17E_guez.xml
  DESTINATION bin RENAME RPRFOM20d17E.xml)
NGL_INSTALL(HLA FILES
  lts-cc.hla.conf
  DESTINATION . RENAME lts-cc.hla.conf.distrib)

NGL_ADD_TARGET_LINK(svcHighLevelArchitecture pHLA)
