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_BASE_DIR=/opt/Qt \
|
||||||
QT_ROOT=/opt/Qt/6.8.3/gcc_64 \
|
QT_ROOT=/opt/Qt/6.8.3/gcc_64 \
|
||||||
Qt6_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
|
PATH=/opt/Qt/6.8.3/gcc_64/bin:$PATH
|
||||||
|
|
||||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
@@ -42,6 +43,8 @@ RUN apt-get update \
|
|||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
libpoppler-dev \
|
libpoppler-dev \
|
||||||
libpoppler-qt6-dev \
|
libpoppler-qt6-dev \
|
||||||
|
libboost-dev \
|
||||||
|
unzip \
|
||||||
python3 \
|
python3 \
|
||||||
python3-venv \
|
python3-venv \
|
||||||
python3-pip \
|
python3-pip \
|
||||||
@@ -85,8 +88,8 @@ RUN set -eux; \
|
|||||||
/app/build_kdreports.sh || true; \
|
/app/build_kdreports.sh || true; \
|
||||||
# If libgtest-dev provided sources, build+install them via script
|
# If libgtest-dev provided sources, build+install them via script
|
||||||
/app/build_gtest.sh || true; \
|
/app/build_gtest.sh || true; \
|
||||||
# geographiclib already installed via apt; RTI (Proprietary) cannot be installed automatically
|
# geographiclib already installed via apt; RTI and ArcGIS are proprietary and installed externally
|
||||||
echo "Note: RTI Connext (RTI) is proprietary and must be installed manually into /opt/RTI if required."
|
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
|
# Add RPM/rpmbuild tools so make_rpm.py can run inside the image when requested
|
||||||
RUN set -eux; \
|
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
|
# 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}"
|
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
|
if [[ ! -f "$ZIP_PATH" ]]; then
|
||||||
echo "ArcGIS zip not found at $ZIP_PATH"
|
echo "ArcGIS zip not found at $ZIP_PATH"
|
||||||
@@ -14,8 +15,13 @@ if [[ ! -f "$ZIP_PATH" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sudo mkdir -p "$TARGET_DIR"
|
# Create target dir, prefer non-root but fall back to sudo when necessary
|
||||||
sudo chown $(id -u):$(id -g) "$TARGET_DIR"
|
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..."
|
echo "Extracting $ZIP_PATH to $TARGET_DIR..."
|
||||||
unzip -q "$ZIP_PATH" -d "$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 WORKDIR_IN_CONTAINER="$WORKDIR_IN_CONTAINER" \
|
||||||
-e QT_ROOT="$QT_ROOT_OVERRIDE" \
|
-e QT_ROOT="$QT_ROOT_OVERRIDE" \
|
||||||
-e Qt6_ROOT="$QT_ROOT_OVERRIDE" \
|
-e Qt6_ROOT="$QT_ROOT_OVERRIDE" \
|
||||||
-e CMAKE_PREFIX_PATH="$QT_ROOT_OVERRIDE" \
|
-e EXTERNAL_DIR="/repo/external" \
|
||||||
-e PROJECT_BASE_DIR="${PROJECT_BASE_DIR:-./}" \
|
-e CMAKE_PREFIX_PATH="$QT_ROOT_OVERRIDE:/repo/external" \
|
||||||
-e PROJECT_BASE_DIR="${PROJECT_BASE_DIR:-./}" \
|
-e PROJECT_BASE_DIR="${PROJECT_BASE_DIR:-./}" \
|
||||||
"$IMAGE_NAME" \
|
"$IMAGE_NAME" \
|
||||||
bash -s -- "${CMD_ARGS[@]}" <<'DOCKER_SCRIPT'
|
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_NOT_FOUND TRUE)
|
||||||
set(_RTI_DIR "")
|
set(_RTI_DIR "")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
SET(_rti_gcc_arch "x64Linux3gcc4.8.2")
|
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_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
IF(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.0.0)
|
IF(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.0.0)
|
||||||
SET(_rti_gcc_arch "x64Linux3gcc5.4.0")
|
# Prefer newer gcc-based RTI builds; try a sequence then fall back to any x64Linux4gcc* dir found under RTI lib
|
||||||
SET(_tmp "${_RTI_DIR}/lib/${_rti_gcc_arch}")
|
SET(_preferred_archs "x64Linux4gcc8.5.0;x64Linux4gcc7.3.0;x64Linux3gcc5.4.0")
|
||||||
IF (NOT EXISTS ${_tmp})
|
SET(_found_arch "")
|
||||||
SET(_rti_gcc_arch "x64Linux4gcc7.3.0")
|
foreach(_cand IN LISTS _preferred_archs)
|
||||||
ENDIF()
|
if(EXISTS "${_RTI_DIR}/lib/${_cand}")
|
||||||
ENDIF()
|
SET(_found_arch "${_cand}")
|
||||||
ENDIF()
|
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}")
|
SET(_arch "${_rti_gcc_arch}")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
SET(RTI_DIR "${_RTI_DIR}" CACHE STRING "RTI base path" FORCE)
|
SET(RTI_DIR "${_RTI_DIR}" CACHE STRING "RTI base path" FORCE)
|
||||||
|
|||||||
Reference in new issue
Block a user