diff --git a/docker/rocky8/Dockerfile b/docker/rocky8/Dockerfile index 61b9e629..7e23306c 100644 --- a/docker/rocky8/Dockerfile +++ b/docker/rocky8/Dockerfile @@ -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 \ diff --git a/docker/rocky9/Dockerfile b/docker/rocky9/Dockerfile index 5d22efc0..cfd74a02 100644 --- a/docker/rocky9/Dockerfile +++ b/docker/rocky9/Dockerfile @@ -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 diff --git a/docker/ubuntu2204/Dockerfile b/docker/ubuntu2204/Dockerfile index cc6fc93c..1436fba3 100644 --- a/docker/ubuntu2204/Dockerfile +++ b/docker/ubuntu2204/Dockerfile @@ -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 diff --git a/docker/ubuntu2404/Dockerfile b/docker/ubuntu2404/Dockerfile index 0872dbe7..a19446e3 100644 --- a/docker/ubuntu2404/Dockerfile +++ b/docker/ubuntu2404/Dockerfile @@ -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