#
# $Id$
# $HeadURL$
# $Author$
#

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


SET(LOG4CXX_PROPS_FILE log4cxx_opapp.props)

SET(mwt_SRCS
  main.cpp
  ${LOG4CXX_PROPS_FILE}
)

IF(WIN32)
  SET(JBN ${JENKINS_BUILD_NUMBER})
  IF (NOT JENKINS_BUILD_NUMBER)
    SET(JBN "0")
  ENDIF()
  SET(OPAPP_VERSION_INFO "${LTS_VERSION_MAJOR}, ${LTS_VERSION_MINOR}, ${JBN}, ${LTS_VERSION_PATCH}")
  CONFIGURE_FILE(opapp.rc.cmake ${CMAKE_CURRENT_BINARY_DIR}/opapp.rc)
  LIST(APPEND mwt_SRCS ${CMAKE_CURRENT_BINARY_DIR}/opapp.rc)
ENDIF()
NGL_ADD_APP_ICON(mwt_SRCS)

IF(BUILD_RPM)
  NGL_ADD_EXECUTABLE(WS OperatorApplication WIN32 ${mwt_SRCS})
ELSE()
  NGL_ADD_EXECUTABLE(WS OperatorApplication ${mwt_SRCS})
ENDIF()

if(QT6_GUI_AVAILABLE)
  NGL_TARGET_LINK_LIBRARIES(OperatorApplication
    $<IF:$<TARGET_EXISTS:ArcGISQt5Hack>,ArcGISQt5Hack,>   # make sure it's loaded *before* libEsriCommonQt.so (guard: only linked when the SituationMap viewer is built, matching CentralEffectSimulation)
    ${Qt6_Widgets}
    Qt6::Network
    nglapplication
    LtsCommandLineParser
    NGLLogger
    LtsSession
    LtsPluginLoader
    LtsAppDescriptor
    LtsAppManager
    LtsSessionData
    LtsUtilsSettings
    ngltranslator
    nglsettings
    LtsProjectionWorkstation
    LtsMultiMonitor # TODO: rm if -m is out
    LtsUtilsGuiConnectDialog # to set timeout if -v is set
    LtsUtilsGuiStyleManager
  )
endif()
NGL_INSTALL_TARGET(OperatorApplication)

NGL_INSTALL(FILES WS ${LOG4CXX_PROPS_FILE} DESTINATION "bin")
