migration: prefer ./external for RTI/ArcGIS; detect RTI arch in FindRTI; install/unpack ArcGIS into ./external
This commit is contained in:
1 parent
fe78be0afa
commit
7c080db59f
4 files changed
+42
-18
No files matched your search
+6
-3
@@ -10,7 +10,8 @@ ENV DEBIAN_FRONTEND=noninteractive \
|
||||
QT_BASE_DIR=/opt/Qt \
|
||||
QT_ROOT=/opt/Qt/6.8.3/gcc_64 \
|
||||
Qt6_ROOT=/opt/Qt/6.8.3/gcc_64 \
|
||||
CMAKE_PREFIX_PATH=/usr/local:/opt/Qt/6.8.3/gcc_64 \
|
||||
EXTERNAL_DIR=/repo/external \
|
||||
CMAKE_PREFIX_PATH=/usr/local:/opt/Qt/6.8.3/gcc_64:/repo/external \
|
||||
PATH=/opt/Qt/6.8.3/gcc_64/bin:$PATH
|
||||
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
@@ -42,6 +43,8 @@ RUN apt-get update \
|
||||
libbz2-dev \
|
||||
libpoppler-dev \
|
||||
libpoppler-qt6-dev \
|
||||
libboost-dev \
|
||||
unzip \
|
||||
python3 \
|
||||
python3-venv \
|
||||
python3-pip \
|
||||
@@ -85,8 +88,8 @@ RUN set -eux; \
|
||||
/app/build_kdreports.sh || true; \
|
||||
# If libgtest-dev provided sources, build+install them via script
|
||||
/app/build_gtest.sh || true; \
|
||||
# geographiclib already installed via apt; RTI (Proprietary) cannot be installed automatically
|
||||
echo "Note: RTI Connext (RTI) is proprietary and must be installed manually into /opt/RTI if required."
|
||||
# geographiclib already installed via apt; RTI and ArcGIS are proprietary and installed externally
|
||||
echo "Note: RTI Connext and ArcGIS Maps SDK are expected to be provided under /repo/external (e.g. /repo/external/rti_connext_dds-7.7.0 and /repo/external/ArcGIS)."
|
||||
|
||||
# Add RPM/rpmbuild tools so make_rpm.py can run inside the image when requested
|
||||
RUN set -eux; \
|
||||
|
||||
@@ -6,7 +6,8 @@ set -euo pipefail
|
||||
# Expects the zip at ../ArcGIS_Maps_SDK_Qt_linux_300.0.0.zip relative to repo root
|
||||
|
||||
ZIP_PATH="${1:-../ArcGIS_Maps_SDK_Qt_linux_300.0.0.zip}"
|
||||
TARGET_DIR="/opt/ArcGIS/MapsSDK_Qt_300.0.0"
|
||||
# Install into repo-local external by default so SDKs are colocated with RTI under ./external
|
||||
TARGET_DIR="${2:-./external/ArcGIS/MapsSDK_Qt_300.0.0}"
|
||||
|
||||
if [[ ! -f "$ZIP_PATH" ]]; then
|
||||
echo "ArcGIS zip not found at $ZIP_PATH"
|
||||
@@ -14,8 +15,13 @@ if [[ ! -f "$ZIP_PATH" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo mkdir -p "$TARGET_DIR"
|
||||
sudo chown $(id -u):$(id -g) "$TARGET_DIR"
|
||||
# Create target dir, prefer non-root but fall back to sudo when necessary
|
||||
if ! mkdir -p "$TARGET_DIR" 2>/dev/null; then
|
||||
sudo mkdir -p "$TARGET_DIR"
|
||||
fi
|
||||
if ! chown $(id -u):$(id -g) "$TARGET_DIR" 2>/dev/null; then
|
||||
sudo chown $(id -u):$(id -g) "$TARGET_DIR" || true
|
||||
fi
|
||||
|
||||
echo "Extracting $ZIP_PATH to $TARGET_DIR..."
|
||||
unzip -q "$ZIP_PATH" -d "$TARGET_DIR"
|
||||
|
||||
+2
-2
@@ -225,8 +225,8 @@ docker run --rm $DOCKER_TTY_FLAG \
|
||||
-e WORKDIR_IN_CONTAINER="$WORKDIR_IN_CONTAINER" \
|
||||
-e QT_ROOT="$QT_ROOT_OVERRIDE" \
|
||||
-e Qt6_ROOT="$QT_ROOT_OVERRIDE" \
|
||||
-e CMAKE_PREFIX_PATH="$QT_ROOT_OVERRIDE" \
|
||||
-e PROJECT_BASE_DIR="${PROJECT_BASE_DIR:-./}" \
|
||||
-e EXTERNAL_DIR="/repo/external" \
|
||||
-e CMAKE_PREFIX_PATH="$QT_ROOT_OVERRIDE:/repo/external" \
|
||||
-e PROJECT_BASE_DIR="${PROJECT_BASE_DIR:-./}" \
|
||||
"$IMAGE_NAME" \
|
||||
bash -s -- "${CMD_ARGS[@]}" <<'DOCKER_SCRIPT'
|
||||
|
||||
+25
-10
@@ -71,16 +71,31 @@ IF(NOT RTI_DIR)
|
||||
set(_RTI_DIR_NOT_FOUND TRUE)
|
||||
set(_RTI_DIR "")
|
||||
ENDIF()
|
||||
SET(_rti_gcc_arch "x64Linux3gcc4.8.2")
|
||||
IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
IF(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.0.0)
|
||||
SET(_rti_gcc_arch "x64Linux3gcc5.4.0")
|
||||
SET(_tmp "${_RTI_DIR}/lib/${_rti_gcc_arch}")
|
||||
IF (NOT EXISTS ${_tmp})
|
||||
SET(_rti_gcc_arch "x64Linux4gcc7.3.0")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
SET(_rti_gcc_arch "x64Linux3gcc4.8.2")
|
||||
IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
IF(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.0.0)
|
||||
# Prefer newer gcc-based RTI builds; try a sequence then fall back to any x64Linux4gcc* dir found under RTI lib
|
||||
SET(_preferred_archs "x64Linux4gcc8.5.0;x64Linux4gcc7.3.0;x64Linux3gcc5.4.0")
|
||||
SET(_found_arch "")
|
||||
foreach(_cand IN LISTS _preferred_archs)
|
||||
if(EXISTS "${_RTI_DIR}/lib/${_cand}")
|
||||
SET(_found_arch "${_cand}")
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
if(_found_arch STREQUAL "")
|
||||
# fallback: pick any x64Linux* directory under lib
|
||||
file(GLOB _rti_arch_dirs RELATIVE "${_RTI_DIR}/lib" "${_RTI_DIR}/lib/x64Linux*")
|
||||
list(GET _rti_arch_dirs 0 _found_arch)
|
||||
endif()
|
||||
if(NOT _found_arch STREQUAL "")
|
||||
SET(_rti_gcc_arch "${_found_arch}")
|
||||
else()
|
||||
# final fallbacks
|
||||
SET(_rti_gcc_arch "x64Linux4gcc7.3.0")
|
||||
endif()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
SET(_arch "${_rti_gcc_arch}")
|
||||
ENDIF()
|
||||
SET(RTI_DIR "${_RTI_DIR}" CACHE STRING "RTI base path" FORCE)
|
||||
|
||||
Reference in new issue
Block a user