new_docker_build.sh and rpmbuild/make_rpm_ubuntu26.py (Release 1 validation-scope driver/producer) did not belong to this branch; their functional callers are adapted to the Release 2 files: - rpmbuild/make_rpm_ubuntu26_release2.py: PIPELINE_FILES now packages new_docker_build_release2.sh and make_rpm_ubuntu26_release2.py. - jenkins-ci-rme/jenkins_builder_ubuntu26.sh: runs make_rpm_ubuntu26_release2.py with -DBUILD_RTI=ON and the Release 2 target list (--build_targets; a full-tree build is not possible on this tree); staging tar also excludes ./build4*. - jenkins-ci-rme/release-16-10-2026.sh (local dry run): calls new_docker_build_release2.sh; derives the pipeline root from the tree layout and exports MIGRATE_PIPELINE_ROOT; uses the prebuilt image when present, otherwise the driver installs deps in-container (the R1 --build-prebuilt-image option does not exist in the R2 driver). - jenkins-ci-rme/jenkins/Jenkinsfile: coverage stage runs the R2 driver with MIGRATE_PIPELINE_ROOT exported (wins over the checked-in .envrc, which carries a host-specific path). - Doc/comment updates: Dockerfile header, install_arcgis.sh, publisher, Jenkinsfile descriptions, jenkins-ci-rme/README.md, README.md. Remaining references to the old names are only in historical migration reports, which are left as-is.
88 lines
3.7 KiB
Bash
Executable File
88 lines
3.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# install_arcgis.sh - Install/setup ArcGIS Runtime SDK for Qt in Docker container
|
|
# This script prepares the ArcGIS SDK for use with Qt6 builds
|
|
|
|
set -e
|
|
|
|
# Use DOCKER_MOUNT_ROOT if set (supports both /repo and /workspace), default to /repo
|
|
DOCKER_MOUNT_ROOT="${DOCKER_MOUNT_ROOT:-/repo}"
|
|
ARCGIS_SRC="${DOCKER_MOUNT_ROOT}/external/ArcGIS"
|
|
ARCGIS_DEST="${DOCKER_MOUNT_ROOT}/qt-migration-legatus/qt6-after/qt6-migrated-legatus/external/ArcGIS"
|
|
|
|
echo "=== ArcGIS SDK Setup ==="
|
|
echo "Source: ${ARCGIS_SRC}"
|
|
echo "Destination: ${ARCGIS_DEST}"
|
|
|
|
# Check if source exists
|
|
if [ ! -d "${ARCGIS_SRC}" ]; then
|
|
echo "ERROR: ArcGIS SDK not found at ${ARCGIS_SRC}"
|
|
echo "Make sure the SDK is mounted in the Docker container"
|
|
exit 1
|
|
fi
|
|
|
|
# Create destination directory if needed
|
|
mkdir -p "$(dirname ${ARCGIS_DEST})"
|
|
|
|
# Remove existing symlink/directory if it exists (check for symlink first)
|
|
if [ -L "${ARCGIS_DEST}" ]; then
|
|
echo "Removing existing ArcGIS SDK symlink at ${ARCGIS_DEST}"
|
|
rm -f "${ARCGIS_DEST}"
|
|
elif [ -e "${ARCGIS_DEST}" ]; then
|
|
echo "Removing existing ArcGIS SDK directory at ${ARCGIS_DEST}"
|
|
rm -rf "${ARCGIS_DEST}"
|
|
fi
|
|
|
|
# Create symlink to the SDK
|
|
echo "Creating symlink: ${ARCGIS_DEST} -> ${ARCGIS_SRC}"
|
|
ln -s "${ARCGIS_SRC}" "${ARCGIS_DEST}"
|
|
|
|
# Verify the SDK structure
|
|
SDK_PATH="${ARCGIS_DEST}/MapsSDK_Qt_300.0.0/ArcGIS_Maps_SDK_Qt_300.0.0/qt300.0.0/sdk"
|
|
if [ -d "${SDK_PATH}" ]; then
|
|
echo "✓ ArcGIS SDK found at: ${SDK_PATH}"
|
|
echo " Include dir: ${SDK_PATH}/include"
|
|
echo " Library dir: ${SDK_PATH}/linux/x64/lib"
|
|
|
|
# List available libraries
|
|
echo " Available libraries:"
|
|
ls -lh "${SDK_PATH}/linux/x64/lib/" | grep -E '\.(so|a)$' || true
|
|
else
|
|
echo "WARNING: Expected SDK structure not found at ${SDK_PATH}"
|
|
echo "Available contents:"
|
|
ls -la "${ARCGIS_DEST}/" || true
|
|
fi
|
|
|
|
# Run configure.sh to properly set up the SDK
|
|
# According to README.txt, this is required after extracting/copying the SDK
|
|
# It (a) headlessly accepts the Esri Master License Agreement and (b) writes
|
|
# $HOME/.config/EsriRuntimeQt/ArcGIS Runtime SDK for Qt 300.0.0.ini with the
|
|
# InstallDir. The ArcGIS runtime reads that ini at startup; without it the 300
|
|
# SDK refuses to initialize and the Situation map view will not load.
|
|
CONFIGURE_SCRIPT="${ARCGIS_DEST}/MapsSDK_Qt_300.0.0/ArcGIS_Maps_SDK_Qt_300.0.0/configure.sh"
|
|
if [ -x "${CONFIGURE_SCRIPT}" ]; then
|
|
echo "=== Running ArcGIS SDK Configuration ==="
|
|
echo "Running configure.sh with -a flag to accept EULA for headless install"
|
|
|
|
# Run configure.sh with -a to accept EULA automatically (headless install)
|
|
# The -np flag skips postInstall.sh which integrates with Qt Creator
|
|
# Remove -np if Qt Creator integration is needed.
|
|
#
|
|
# configure.sh is mounted read-only (the build driver mounts external:ro),
|
|
# so its `sed -i` on ideintegration/*.pri (Qt Creator IDE patching only) fails
|
|
# with "Read-only file system" and exits 1. That step is NOT used by the CMake
|
|
# build (which consumes ArcGISRuntime.cmake, not the .pri files), and the
|
|
# runtime .ini is written to $HOME before it runs. So treat a non-zero exit
|
|
# as a warning, not fatal, or the whole build aborts before cmake.
|
|
if ! "${CONFIGURE_SCRIPT}" -a -np; then
|
|
echo "WARNING: configure.sh returned non-zero (expected: sed -i on the read-only external mount fails)."
|
|
echo " The runtime .ini (InstallDir) was written to \$HOME before that step; the .pri"
|
|
echo " patching is Qt Creator-only and not needed for the CMake build. Continuing."
|
|
else
|
|
echo "✓ ArcGIS SDK configuration complete"
|
|
fi
|
|
else
|
|
echo "WARNING: configure.sh not found or not executable at ${CONFIGURE_SCRIPT}"
|
|
echo "SDK may not be properly configured for use"
|
|
fi
|
|
|
|
echo "=== ArcGIS SDK Setup Complete ===" |