Docker: For Ubuntu 24.04 use OS Qt6 + most distros use EIGEN 3.4 from OS + add FFTW3
Build Packages / Generate python client (push) Successful in 1m13s
Build Packages / Build documentation (push) Successful in 1m56s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 11m15s
Build Packages / build:rpm (rocky8) (push) Successful in 14m54s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 15m5s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 16m16s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 16m56s
Build Packages / build:rpm (rocky9) (push) Successful in 17m1s
Build Packages / Unit tests (push) Has been cancelled

This commit is contained in:
2025-09-19 21:49:16 +02:00
parent 3b859c59c5
commit bbc9b08266
4 changed files with 14 additions and 65 deletions
+2
View File
@@ -48,6 +48,8 @@ RUN dnf -y update && \
dbus-devel \
zlib-devel \
glib2-devel \
fftw-static \
fftw-devel \
fontconfig-devel \
zlib-static \
java-21-openjdk-headless \
+4 -10
View File
@@ -51,6 +51,9 @@ RUN dnf -y update && \
dbus-devel \
zlib-devel \
glib2-devel \
fftw-static \
fftw-devel \
eigen3-devel \
zlib-static \
fontconfig-devel \
openblas-devel \
@@ -78,15 +81,6 @@ RUN curl -fsSL https://rpm.nodesource.com/setup_${NODE_MAJOR}.x | bash - && \
dnf clean all && rm -rf /var/cache/dnf && \
node --version && npm --version && (corepack enable || true)
# Header-only Eigen (clone a specific tag)
RUN git clone --depth 1 --branch ${EIGEN_TAG} https://gitlab.com/libeigen/eigen.git /tmp/eigen && \
cd /tmp/eigen && \
mkdir build && \
cd build && \
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/eigen && \
make install && \
rm -rf /tmp/eigen
# Make GCC/G++ 13 the default for builds
ENV GCC_TOOLSET_ROOT=/opt/rh/gcc-toolset-13/root
ENV PATH=${GCC_TOOLSET_ROOT}/usr/bin:${PATH}
@@ -122,7 +116,7 @@ RUN set -eux; \
cd /; rm -rf /tmp/qt-everywhere-src-${QT_VERSION} /tmp/qt-everywhere-src-${QT_VERSION}.tar.xz
# Make Qt and Eigen discoverable by CMake
ENV CMAKE_PREFIX_PATH=/opt/qt-${QT_VERSION}-static:/opt/eigen
ENV CMAKE_PREFIX_PATH=/opt/qt-${QT_VERSION}-static
# Set workdir for your project
WORKDIR /workspace
+3 -10
View File
@@ -65,6 +65,8 @@ RUN set -eux; \
libglib2.0-dev \
libfontconfig1-dev \
libopenblas-dev \
libfftw3-dev \
libeigen3-dev \
libfreetype6-dev; \
apt-get -y install gcc-12 g++-12; \
apt-get clean; \
@@ -94,15 +96,6 @@ RUN set -eux; \
rm -rf /var/lib/apt/lists/*; \
node --version; npm --version; (corepack enable || true)
# Header-only Eigen (specific tag)
RUN git clone --depth 1 --branch ${EIGEN_TAG} https://gitlab.com/libeigen/eigen.git /tmp/eigen && \
cd /tmp/eigen && \
mkdir build && \
cd build && \
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/eigen && \
make install && \
rm -rf /tmp/eigen
# Use GCC/G++ 12 for builds
ENV CC=/usr/bin/gcc-12
ENV CXX=/usr/bin/g++-12
@@ -137,7 +130,7 @@ RUN set -eux; \
cd /; rm -rf /tmp/qt-everywhere-src-${QT_VERSION} /tmp/qt-everywhere-src-${QT_VERSION}.tar.xz
# Make Qt and Eigen discoverable by CMake
ENV CMAKE_PREFIX_PATH=/opt/qt-${QT_VERSION}-static:/opt/eigen
ENV CMAKE_PREFIX_PATH=/opt/qt-${QT_VERSION}-static
# Set workdir for your project
WORKDIR /workspace
+5 -45
View File
@@ -63,6 +63,11 @@ RUN set -eux; \
libglib2.0-dev \
libfontconfig1-dev \
libopenblas-dev \
libfftw3-dev \
qt6-base-dev \
qt6-charts-dev \
qt6-tools-dev \
libeigen3-dev \
libfreetype6-dev; \
apt-get clean; \
rm -rf /var/lib/apt/lists/*
@@ -91,51 +96,6 @@ RUN set -eux; \
rm -rf /var/lib/apt/lists/*; \
node --version; npm --version; (corepack enable || true)
# Header-only Eigen (specific tag)
RUN git clone --depth 1 --branch ${EIGEN_TAG} https://gitlab.com/libeigen/eigen.git /tmp/eigen && \
cd /tmp/eigen && \
mkdir build && \
cd build && \
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/eigen && \
make install && \
rm -rf /tmp/eigen
# Use GCC/G++ 13 for builds (default on Ubuntu 24.04)
ENV CC=/usr/bin/gcc
ENV CXX=/usr/bin/g++
RUN gcc --version && g++ --version
# Build and install static Qt 6.9 with Core, Gui, Widgets, Charts, DBus
ARG QT_PREFIX=/opt/qt-${QT_VERSION}-static
RUN set -eux; \
cd /tmp; \
curl -LO https://download.qt.io/official_releases/qt/6.9/${QT_VERSION}/single/qt-everywhere-src-${QT_VERSION}.tar.xz; \
tar -xf qt-everywhere-src-${QT_VERSION}.tar.xz; \
mkdir -p qt-everywhere-src-${QT_VERSION}/build && cd qt-everywhere-src-${QT_VERSION}/build; \
cmake -G Ninja \
-DQT_BUILD_SUBMODULES="qtbase;qtshadertools;qtdeclarative;qtcharts" \
-DBUILD_SHARED_LIBS=OFF \
-DQT_BUILD_TESTS=OFF \
-DQT_BUILD_EXAMPLES=OFF \
-DQT_FEATURE_dbus=ON \
-DQT_FEATURE_xcb=ON \
-DQT_FEATURE_xcb_xlib=ON \
-DQT_FEATURE_xkbcommon_x11=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${QT_PREFIX} \
-DCMAKE_C_COMPILER=${CC} \
-DCMAKE_CXX_COMPILER=${CXX} \
-DQT_FEATURE_openssl=ON \
-DQT_FEATURE_openssl_linked=ON \
-DOPENSSL_USE_STATIC_LIBS=TRUE \
..; \
cmake --build . -j"$(nproc)"; \
cmake --install .; \
cd /; rm -rf /tmp/qt-everywhere-src-${QT_VERSION} /tmp/qt-everywhere-src-${QT_VERSION}.tar.xz
# Make Qt and Eigen discoverable by CMake
ENV CMAKE_PREFIX_PATH=/opt/qt-${QT_VERSION}-static:/opt/eigen
# Set workdir for your project
WORKDIR /workspace