new_docker_build.sh gains Group 12 (212 GUI/Data plugins); fixes LtsUtilsGuiDds visibility (LTO-stripped exports), LtsProjectionWorkstation unity name shadow, 6 unity-off dirs (dup file-scope statics, ddsftc INTERFACE sources) and reconfigures BUILD_FILTERMANAGEMENT/BUILD_PLUGINS_SERVICEMONITOR=ON
162 lines
6.8 KiB
CMake
Executable File
162 lines
6.8 KiB
CMake
Executable File
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IF(ARCGIS_INCLUDE_DIR AND ARCGIS_LIBRARY)
|
|
SET(ARCGIS_FOUND TRUE)
|
|
ELSE()
|
|
|
|
INCLUDE(FindLibraryWithDebug)
|
|
INCLUDE(FindPackageHandleStandardArgs)
|
|
|
|
SET(QT_MIN_VERSION 6.0.0)
|
|
FIND_PACKAGE(Qt6 COMPONENTS Core Gui Location Network Sensors)
|
|
IF (NOT Qt6_FOUND)
|
|
MESSAGE(WARNING "Qt6 not found; skipping ArcGIS")
|
|
SET(BUILD_ARCGIS OFF CACHE BOOL "Build ArcGIS SDK dependent modules" FORCE)
|
|
RETURN()
|
|
ENDIF()
|
|
|
|
SET(_arcgis_include_hint "${CMAKE_SOURCE_DIR}/external/ArcGIS/MapsSDK_Qt_300.0.0/ArcGIS_Maps_SDK_Qt_300.0.0/qt300.0.0/sdk/include")
|
|
SET(_arcgis_library_hint "${CMAKE_SOURCE_DIR}/external/ArcGIS/MapsSDK_Qt_300.0.0/ArcGIS_Maps_SDK_Qt_300.0.0/qt300.0.0/sdk/linux/x64/lib")
|
|
|
|
# Check if paths exist, if not try alternative paths
|
|
IF(NOT EXISTS "${_arcgis_include_hint}")
|
|
SET(_arcgis_include_hint "${CMAKE_SOURCE_DIR}/../../external/ArcGIS/MapsSDK_Qt_300.0.0/ArcGIS_Maps_SDK_Qt_300.0.0/qt300.0.0/sdk/include")
|
|
SET(_arcgis_library_hint "${CMAKE_SOURCE_DIR}/../../external/ArcGIS/MapsSDK_Qt_300.0.0/ArcGIS_Maps_SDK_Qt_300.0.0/qt300.0.0/sdk/linux/x64/lib")
|
|
ENDIF()
|
|
|
|
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 ArcGISQt_global.h HINTS ${_arcgis_include_hint})
|
|
FIND_LIBRARY(ARCGIS_LIBRARY NAMES EsriRuntimeQt HINTS ${_arcgis_library_hint})
|
|
|
|
FIND_LIBRARY(ARCGIS_COMMON_LIBRARY NAMES EsriCommonQt HINTS ${_arcgis_library_hint})
|
|
IF (UNIX)
|
|
|
|
FIND_LIBRARY(ARCGIS_CPP_LIBRARY 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)
|
|
|
|
IF(NOT ARCGIS_FOUND)
|
|
SET(BUILD_ARCGIS OFF CACHE BOOL "Build ArcGIS SDK dependent modules" FORCE)
|
|
ENDIF()
|
|
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}")
|
|
|
|
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()
|
|
|
|
# APPEND (not replace): line 95 above set the ArcGIS SDK include dir; a plain
|
|
# SET_PROPERTY here overwrote it, so consumers (e.g. advancedSymbology) never
|
|
# saw <Symbol.h> etc. Base-state defect carried over from the legacy Qt5 file
|
|
# (identical overwrite of the Qt5 include dirs), never surfaced because the
|
|
# ArcGIS-ON GROUP5 path was never validated in this pipeline.
|
|
#
|
|
# Only propagate the include dirs of Qt6 component targets that actually exist.
|
|
# On a reconfigure the top-level find_package(Qt6 ... Positioning ...) is
|
|
# short-circuited by the cached Qt6_*_DIR values, so the Qt6::Location /
|
|
# Qt6::Sensors imported targets are NOT re-created even though the components
|
|
# are "found" (Qt6Location_DIR/Qt6Sensors_DIR stay cached). A bare
|
|
# $<TARGET_PROPERTY:Qt6::Location,...> on a missing target is a hard
|
|
# "target not found" error at generate time. Guarding on TARGET keeps the
|
|
# interface complete whenever the targets exist and skips them (instead of
|
|
# crashing) when a reconfigure left them absent.
|
|
SET(_arcgis_qt6_incs "")
|
|
FOREACH(_arcgis_qt6_comp Core Location Network Sensors)
|
|
IF(TARGET Qt6::${_arcgis_qt6_comp})
|
|
LIST(APPEND _arcgis_qt6_incs
|
|
$<TARGET_PROPERTY:Qt6::${_arcgis_qt6_comp},INTERFACE_INCLUDE_DIRECTORIES>)
|
|
ENDIF()
|
|
ENDFOREACH()
|
|
IF(_arcgis_qt6_incs)
|
|
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
|
${_arcgis_qt6_incs})
|
|
ENDIF()
|
|
|
|
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()
|