Files
qt-migration-legatus/qt5-before/dlbo/cmake/FindArcGIS.cmake
T
torstenandCopilot 7173785915 Qt6 Migration: Complete migration with DDS/RTI support and build validation
Major Changes:
- Merged latest Qt5 devel content from dlbo (292 files changed, 7 new dirs)
- Consolidated forward-declarations and include folders
- Removed unneeded modules per Niklas' repo check list

Build System Fixes:
- Fixed CMake VERSION_GREATER syntax in ParticipantManagement/CMakeLists.txt
- Added VLC packages (libvlc-dev, vlc-plugin-base) to docker_build.sh
- Added PostgreSQL dev packages (libpq-dev, postgresql-server-dev-all) to Dockerfile
- Fixed locale warnings (ANSI_X3.4-1968 → C.UTF-8)
- Fixed ArcGIS SDK path warnings when BUILD_ARCGIS=OFF

Code Generation Fixes:
- Fixed IDL enum collisions (PortType→CorePortType/DdsutPortType, PdmEventType)
- Fixed Grantlee template svc_translation.cpp.grantlee:
  - Changed {{ idl_enum.name }}_def:: to {{ idl_enum.name }}::
  - Fixed .underlying() calls for C++11 scoped enums (enum class)
- Removed generated files from repo (moc_*, *_dtc.h, *_ftc.h)

Validation:
- BUILD_RTI=ON: SUCCESS
- BUILD_RTI=OFF: SUCCESS
- C++17 standard maintained for RTI 7.7 compatibility
- Ubuntu 26.04 Docker environment verified

Remaining Warnings (expected):
- BgViewer, KDChart, KDReports, Poppler-Qt6 not found (optional features)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-09-15 18:20:26 +00:00

127 lines
5.8 KiB
CMake

# -------------------------------------------------------------------------
# $HeadURL$
# -------------------------------------------------------------------------
#!
# -------------------------------------------------------------------------
# COPYRIGHT (C) 2017: RHEINMETALL ELECTRONICS GmbH, D-28305 BREMEN
# -------------------------------------------------------------------------
#
# Revision INFO:
# --------------
# $Revision$
# $Date$
# $Id$
#
# PURPOSE:
# --------
# Suchen der ArcGIS-Library und Setzen der folgenden CMake-Variablen:
# ARCGIS_INCLUDE_DIR - ArcGIS headers location
# ARCGIS_LIBRARY - ArcGIS library
# ARCGIS_FOUND - TRUE wenn Library gefunden wurde
#
IF(ARCGIS_INCLUDE_DIR AND ARCGIS_LIBRARY)
SET(ARCGIS_FOUND TRUE)
ELSE()
INCLUDE(FindLibraryWithDebug)
INCLUDE(FindPackageHandleStandardArgs)
SET(QT_MIN_VERSION 5.4.0)
FIND_PACKAGE(Qt5 COMPONENTS Core Gui Location Network Sensors REQUIRED)
SET(_arcgis_include_hint "/usr/include")
SET(_arcgis_library_hint "/usr/lib64")
SET(_arcgis_lib_dir $ENV{ARCGIS_LIB_DIR})
SET(_arcgis_inc_dir $ENV{ARCGIS_INC_DIR})
IF (NOT ${_arcgis_lib_dir} STREQUAL "")
SET(_arcgis_library_hint "${_arcgis_lib_dir}")
ENDIF()
IF (NOT ${_arcgis_inc_dir} STREQUAL "")
SET(_arcgis_include_hint "${_arcgis_inc_dir}")
ENDIF()
IF(WIN32)
GET_FILENAME_COMPONENT(_arcgis_root_path "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\ESRI\\ArcGISRuntimeQt100.0.0;InstallDir]" ABSOLUTE)
IF(_arcgis_root_path)
SET(_arcgis_include_hint "${_arcgis_root_path}/sdk/windows/include/")
SET(_arcgis_library_hint "${_arcgis_root_path}/sdk/windows/x86/lib/")
ELSE()
SET(_root "$ENV{KDEROOT}")
FILE(TO_CMAKE_PATH "${_root}" _root)
IF(NOT EXISTS "${_root}" OR NOT IS_DIRECTORY "${_root}")
SET(_root $ENV{WORKSPACE})
FILE(TO_CMAKE_PATH "${_root}" _root)
ENDIF()
IF(NOT EXISTS "${_root}" OR NOT IS_DIRECTORY "${_root}")
SET(_root ${EXTERNAL_LIBRARY_DIR})
FILE(TO_CMAKE_PATH "${_root}" _root)
ENDIF()
SET(_arcgis_include_hint "${_root}/include/")
SET(_arcgis_library_hint "${_root}/lib/")
ENDIF()
ENDIF()
FIND_PATH(ARCGIS_INCLUDE_DIR arcgis/ArcGISQt_global.h HINTS ${_arcgis_include_hint})
FIND_LIBRARY_WITH_DEBUG(ARCGIS_LIBRARY WIN32_DEBUG_POSTFIX d NAMES EsriRuntimeQt HINTS ${_arcgis_library_hint})
FIND_LIBRARY_WITH_DEBUG(ARCGIS_COMMON_LIBRARY WIN32_DEBUG_POSTFIX d NAMES EsriCommonQt HINTS ${_arcgis_library_hint})
IF (UNIX)
# FIND_LIBRARY_WITH_DEBUG(ARCGIS_CPP_LIBRARY WIN32_DEBUG_POSTFIX d NAMES c++ HINTS ${_arcgis_library_hint})
FIND_LIBRARY_WITH_DEBUG(ARCGIS_CPP_LIBRARY WIN32_DEBUG_POSTFIX d NAMES runtimecore HINTS ${_arcgis_library_hint})
ENDIF()
FIND_PACKAGE_HANDLE_STANDARD_ARGS(ArcGIS DEFAULT_MSG ARCGIS_LIBRARY ARCGIS_INCLUDE_DIR)
MARK_AS_ADVANCED(ARCGIS_INCLUDE_DIR ARCGIS_LIBRARY)
ENDIF()
IF(NOT TARGET ArcGIS::ArcGIS)
ADD_LIBRARY(ArcGIS::ArcGIS UNKNOWN IMPORTED)
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${ARCGIS_INCLUDE_DIR}")
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${ARCGIS_INCLUDE_DIR}") # -isystem
IF(ARCGIS_LIBRARY_RELEASE)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY IMPORTED_LOCATION_RELEASE "${ARCGIS_LIBRARY_RELEASE}")
ENDIF()
IF(ARCGIS_LIBRARY_DEBUG)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY IMPORTED_LOCATION_DEBUG "${ARCGIS_LIBRARY_DEBUG}")
ENDIF()
IF(NOT ARCGIS_LIBRARY_RELEASE AND NOT ARCGIS_LIBRARY_DEBUG)
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY IMPORTED_LOCATION "${ARCGIS_LIBRARY}")
ENDIF()
#SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY INTERFACE_LINK_LIBRARIES Qt5::Core Qt5::Gui Qt5::Location Qt5::Network Qt5::Sensors)
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY INTERFACE_INCLUDE_DIRECTORIES
$<TARGET_PROPERTY:Qt5::Core,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:Qt5::Location,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:Qt5::Network,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:Qt5::Sensors,INTERFACE_INCLUDE_DIRECTORIES>
)
IF (UNIX)
IF(ARCGIS_COMMON_LIBRARY_RELEASE)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Release>:"${ARCGIS_COMMON_LIBRARY_RELEASE}">)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Release>:"${ARCGIS_CPP_LIBRARY_RELEASE}">)
ENDIF()
IF(ARCGIS_COMMON_LIBRARY_DEBUG)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Debug>:"${ARCGIS_COMMON_LIBRARY_DEBUG}">)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Debug>:"${ARCGIS_CPP_LIBRARY_DEBUG}">)
ENDIF()
IF(ARCGIS_COMMON_LIBRARY AND NOT ARCGIS_COMMON_LIBRARY_RELEASE AND NOT ARCGIS_COMMON_LIBRARY_DEBUG)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${ARCGIS_COMMON_LIBRARY}" "${ARCGIS_CPP_LIBRARY}")
ENDIF()
ELSE()
IF(ARCGIS_COMMON_LIBRARY_RELEASE)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Release>:${ARCGIS_COMMON_LIBRARY_RELEASE}>)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:RelWithDebInfo>:${ARCGIS_COMMON_LIBRARY_RELEASE}>)
ENDIF()
IF(ARCGIS_COMMON_LIBRARY_DEBUG)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Debug>:${ARCGIS_COMMON_LIBRARY_DEBUG}>)
ENDIF()
IF(ARCGIS_COMMON_LIBRARY AND NOT ARCGIS_COMMON_LIBRARY_RELEASE AND NOT ARCGIS_COMMON_LIBRARY_DEBUG)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${ARCGIS_COMMON_LIBRARY}")
ENDIF()
ENDIF()
ENDIF()