- LtsWidgets: Fixed Qt6 API compatibility issues - QWheelEvent::delta() → angleDelta().y() - QStyleOption::init() → initFrom() - QComboBox activated signal signature change - QTextCodec removal (UTF-8 default in Qt6) - Missing widget includes added - LtsWebSocket: Fixed m_logger reference initialization - Added NGLLoggerBootstrap includes - Proper initialization in constructor initializer lists - CMake: Added BUILD_LTSWEBSOCKET option for temporary exclusion - Docker: RTI Connext permanent installation script added - ci/install-rti-in-docker.sh for persistent RTI setup - Removes need for volume mounting RTI into container - BUILD options: FilterManagement, RTI, Codification, Grantlee, LtsWebSocket can be disabled for partial builds during migration Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
72 lines
2.0 KiB
Docker
72 lines
2.0 KiB
Docker
FROM ubuntu:26.04
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
python3 \
|
|
clang-format \
|
|
cmake \
|
|
ninja-build \
|
|
git \
|
|
g++ \
|
|
make \
|
|
ca-certificates \
|
|
openssh-client \
|
|
pkg-config \
|
|
qtbase5-dev \
|
|
qt6-base-dev \
|
|
qt6-base-dev-tools \
|
|
qt6-tools-dev \
|
|
qt6-tools-dev-tools \
|
|
qt6-svg-dev \
|
|
qt6-websockets-dev \
|
|
qt6-serialport-dev \
|
|
qt6-multimedia-dev \
|
|
qt6-declarative-dev \
|
|
libpoppler-qt6-dev \
|
|
libpq-dev \
|
|
libbz2-dev \
|
|
libboost-all-dev \
|
|
libxml2-dev \
|
|
libssl-dev \
|
|
libcurl4-openssl-dev && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Log4Qt for Qt6
|
|
RUN git clone --depth 1 https://github.com/MEONMedical/Log4Qt.git /tmp/log4qt && \
|
|
cd /tmp/log4qt && \
|
|
mkdir -p build && cd build && \
|
|
cmake -DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_CXX_STANDARD=20 \
|
|
-DCMAKE_CXX_EXTENSIONS=OFF \
|
|
-DCMAKE_PREFIX_PATH="/usr" \
|
|
-DCMAKE_INSTALL_PREFIX="/usr/local" \
|
|
-DBUILD_SHARED_LIBS=ON .. && \
|
|
cmake --build . -- -j$(nproc) && \
|
|
cmake --install . && \
|
|
rm -rf /tmp/log4qt
|
|
|
|
# Create minimal CMake config for Log4Qt
|
|
RUN mkdir -p /usr/local/lib/cmake/Log4Qt && \
|
|
cat > /usr/local/lib/cmake/Log4Qt/Log4QtConfig.cmake << 'EOF'
|
|
if (NOT TARGET Log4Qt::log4qt)
|
|
add_library(Log4Qt::log4qt UNKNOWN IMPORTED)
|
|
set_target_properties(Log4Qt::log4qt PROPERTIES
|
|
IMPORTED_LOCATION "/usr/local/lib/liblog4qt.so"
|
|
INTERFACE_INCLUDE_DIRECTORIES "/usr/local/include"
|
|
)
|
|
endif()
|
|
set(Log4Qt_FOUND TRUE CACHE INTERNAL "Log4Qt found by package config")
|
|
set(Log4Qt_INCLUDE_DIRS "/usr/local/include" CACHE INTERNAL "Log4Qt include dir")
|
|
set(Log4Qt_LIBRARIES "/usr/local/lib/liblog4qt.so" CACHE INTERNAL "Log4Qt library")
|
|
EOF
|
|
|
|
# Set Qt platform for headless testing
|
|
ENV QT_QPA_PLATFORM=offscreen
|
|
|
|
# Configure git for containerized environments
|
|
RUN git config --global --add safe.directory "*"
|
|
|
|
WORKDIR /workspace
|