From a13643c3f6396cba7bc168f3f851e7ff7f050e30 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Mon, 5 Jan 2026 14:55:05 +0100 Subject: [PATCH 01/49] Feature: Add docker container for clang-based compilation --- .github/workflows/docker-image.yml | 131 ++++++++++++++++------------- clang/ubuntu/Dockerfile | 29 +++++++ 2 files changed, 101 insertions(+), 59 deletions(-) create mode 100644 clang/ubuntu/Dockerfile diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index c70f218..a922959 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -9,9 +9,9 @@ on: workflow_dispatch: jobs: - t8_dependencies: + t8_clang: strategy: - fail-fast: false + fail-fast: true matrix: include: - os: ubuntu-latest @@ -21,60 +21,73 @@ jobs: - uses: actions/checkout@v2 - name: Build the docker image run: | - docker build --tag dlramr/t8code-${{ matrix.target_os }}:t8-dependencies dependencies/${{ matrix.target_os }} - - name: Push the docker image - env: # Set the secret as an input - docker_token: ${{ secrets.DOCKER_TOKEN }} - run: | - echo ${{ env.docker_token }} | docker login --username dlramr --password-stdin - docker push dlramr/t8code-${{ matrix.target_os }}:t8-dependencies - with_t8code: - needs: t8_dependencies - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-latest - target_os: ubuntu - tag: t8-1.0.0 - t8code_version: 1.0.0 - - os: ubuntu-latest - target_os: ubuntu - tag: t8-1.1.0 - t8code_version: 1.1.0 - - os: ubuntu-latest - target_os: ubuntu - tag: t8-1.2.0 - t8code_version: 1.2.0 - - os: ubuntu-latest - target_os: ubuntu - tag: t8-1.3.0 - t8code_version: 1.3.0 - - os: ubuntu-latest - target_os: ubuntu - tag: t8-1.4.1 - t8code_version: 1.4.1 - - os: ubuntu-latest - target_os: ubuntu - tag: t8-1.5.0 - t8code_version: 1.5.0 - - os: ubuntu-latest - target_os: ubuntu - tag: t8-1.6.1 - t8code_version: 1.6.1 - - os: ubuntu-latest - target_os: ubuntu - tag: t8-2.0.0 - t8code_version: 2.0.0 - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v2 - - name: Build the docker image - run: | - docker build --build-arg t8code_version=${{ matrix.t8code_version}} --tag dlramr/t8code-${{ matrix.target_os }}:${{ matrix.tag }} t8code/${{ matrix.target_os }} - - name: Push the docker image - env: # Set the secret as an input - docker_token: ${{ secrets.DOCKER_TOKEN }} - run: | - echo ${{ env.docker_token }} | docker login --username dlramr --password-stdin - docker push dlramr/t8code-${{ matrix.target_os }}:${{ matrix.tag }} + docker build --tag dlramr/t8code-${{ matrix.target_os }}:t8-clang clang/${{ matrix.target_os }} + # t8_dependencies: + # strategy: + # fail-fast: false + # matrix: + # include: + # - os: ubuntu-latest + # target_os: ubuntu + # runs-on: ${{ matrix.os }} + # steps: + # - uses: actions/checkout@v2 + # - name: Build the docker image + # run: | + # docker build --tag dlramr/t8code-${{ matrix.target_os }}:t8-dependencies dependencies/${{ matrix.target_os }} + # - name: Push the docker image + # env: # Set the secret as an input + # docker_token: ${{ secrets.DOCKER_TOKEN }} + # run: | + # echo ${{ env.docker_token }} | docker login --username dlramr --password-stdin + # docker push dlramr/t8code-${{ matrix.target_os }}:t8-dependencies + # with_t8code: + # needs: t8_dependencies + # strategy: + # fail-fast: false + # matrix: + # include: + # - os: ubuntu-latest + # target_os: ubuntu + # tag: t8-1.0.0 + # t8code_version: 1.0.0 + # - os: ubuntu-latest + # target_os: ubuntu + # tag: t8-1.1.0 + # t8code_version: 1.1.0 + # - os: ubuntu-latest + # target_os: ubuntu + # tag: t8-1.2.0 + # t8code_version: 1.2.0 + # - os: ubuntu-latest + # target_os: ubuntu + # tag: t8-1.3.0 + # t8code_version: 1.3.0 + # - os: ubuntu-latest + # target_os: ubuntu + # tag: t8-1.4.1 + # t8code_version: 1.4.1 + # - os: ubuntu-latest + # target_os: ubuntu + # tag: t8-1.5.0 + # t8code_version: 1.5.0 + # - os: ubuntu-latest + # target_os: ubuntu + # tag: t8-1.6.1 + # t8code_version: 1.6.1 + # - os: ubuntu-latest + # target_os: ubuntu + # tag: t8-2.0.0 + # t8code_version: 2.0.0 + # runs-on: ${{ matrix.os }} + # steps: + # - uses: actions/checkout@v2 + # - name: Build the docker image + # run: | + # docker build --build-arg t8code_version=${{ matrix.t8code_version}} --tag dlramr/t8code-${{ matrix.target_os }}:${{ matrix.tag }} t8code/${{ matrix.target_os }} + # - name: Push the docker image + # env: # Set the secret as an input + # docker_token: ${{ secrets.DOCKER_TOKEN }} + # run: | + # echo ${{ env.docker_token }} | docker login --username dlramr --password-stdin + # docker push dlramr/t8code-${{ matrix.target_os }}:${{ matrix.tag }} diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile new file mode 100644 index 0000000..7263b0f --- /dev/null +++ b/clang/ubuntu/Dockerfile @@ -0,0 +1,29 @@ +FROM ubuntu:20.04 +LABEL org.opencontainers.image.authors="Thomas Spenke " +LABEL Description="Ubuntu 20.04 with clang and openmpi setup to be uses with t8code" +SHELL ["/bin/bash", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +####################################################### +# Install software requirements and build tools # +####################################################### + +# Install required packages. +RUN apt-get update -y && apt-get upgrade -y; \ + apt-get install -y wget tar lld make \ + libc6-dev libc++-dev libc++abi-dev \ + pkg-config \ + git \ + clang + +ENV OMPI_INSTALL_PATH=/opt/install_openmpi_clang + +# Install openmpi with clang compiler. +RUN mkdir install_ompi_clang; \ + wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.gz; \ + tar xf openmpi-4.1.6.tar.gz; \ + cd openmpi-4.1.6; \ + CC=clang CXX=clang++ ./configure --prefix=$OMPI_INSTALL_PATH; \ + make -j$(nproc); \ + make install \ No newline at end of file From c13db0b5651aa43ee7e0984bf3551d9bd8078809 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Mon, 5 Jan 2026 15:11:46 +0100 Subject: [PATCH 02/49] Actually push the new image --- .github/workflows/docker-image.yml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index a922959..3f9fe06 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -9,27 +9,33 @@ on: workflow_dispatch: jobs: - t8_clang: + t8_clang_dependencies: strategy: fail-fast: true matrix: - include: + include: - os: ubuntu-latest target_os: ubuntu - runs-on: ${{ matrix.os }} + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - name: Build the docker image run: | - docker build --tag dlramr/t8code-${{ matrix.target_os }}:t8-clang clang/${{ matrix.target_os }} + docker build --tag dlramr/t8code-${{ matrix.target_os }}:t8-clang-dependencies clang/${{ matrix.target_os }} + - name: Push the docker image + env: # Set the secret as an input + docker_token: ${{ secrets.DOCKER_TOKEN }} + run: | + echo ${{ env.docker_token }} | docker login --username dlramr --password-stdin + docker push dlramr/t8code-${{ matrix.target_os }}:t8-clang-dependencies # t8_dependencies: # strategy: # fail-fast: false # matrix: - # include: + # include: # - os: ubuntu-latest # target_os: ubuntu - # runs-on: ${{ matrix.os }} + # runs-on: ${{ matrix.os }} # steps: # - uses: actions/checkout@v2 # - name: Build the docker image @@ -46,7 +52,7 @@ jobs: # strategy: # fail-fast: false # matrix: - # include: + # include: # - os: ubuntu-latest # target_os: ubuntu # tag: t8-1.0.0 @@ -79,7 +85,7 @@ jobs: # target_os: ubuntu # tag: t8-2.0.0 # t8code_version: 2.0.0 - # runs-on: ${{ matrix.os }} + # runs-on: ${{ matrix.os }} # steps: # - uses: actions/checkout@v2 # - name: Build the docker image From be7b61846405885ff0a62ad5abc68272e9a71bb9 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Mon, 5 Jan 2026 15:49:05 +0100 Subject: [PATCH 03/49] Update to Ubuntu 22.04 --- clang/ubuntu/Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 7263b0f..f0b4e83 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -1,9 +1,11 @@ -FROM ubuntu:20.04 +FROM ubuntu:22.04 LABEL org.opencontainers.image.authors="Thomas Spenke " -LABEL Description="Ubuntu 20.04 with clang and openmpi setup to be uses with t8code" +LABEL Description="Ubuntu 22.04 with clang and openmpi setup to be uses with t8code" SHELL ["/bin/bash", "-c"] ENV DEBIAN_FRONTEND=noninteractive +ENV LIBRARY_PATH=/usr/local/lib +ENV LD_LIBRARY_PATH=/usr/local/lib ####################################################### # Install software requirements and build tools # From 4d09f03d772c42f3326cb805e3328043b2806a3e Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Mon, 5 Jan 2026 16:17:49 +0100 Subject: [PATCH 04/49] Add cmake and ninja-build packages --- clang/ubuntu/Dockerfile | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index f0b4e83..cdd884e 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -13,11 +13,18 @@ ENV LD_LIBRARY_PATH=/usr/local/lib # Install required packages. RUN apt-get update -y && apt-get upgrade -y; \ - apt-get install -y wget tar lld make \ - libc6-dev libc++-dev libc++abi-dev \ - pkg-config \ - git \ - clang + apt-get install -y wget \ + tar \ + lld \ + make \ + cmake \ + ninja-build \ + libc6-dev \ + libc++-dev \ + libc++abi-dev \ + pkg-config \ + git \ + clang ENV OMPI_INSTALL_PATH=/opt/install_openmpi_clang From 2aab7d7ea67494fa2d67821dd8130d11c222659d Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 6 Jan 2026 10:45:30 +0100 Subject: [PATCH 05/49] Avoid installing gcc in clang image --- clang/ubuntu/Dockerfile | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index cdd884e..6c6153c 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -11,9 +11,10 @@ ENV LD_LIBRARY_PATH=/usr/local/lib # Install software requirements and build tools # ####################################################### -# Install required packages. +# Install required packages (without recommends to avoid gcc). RUN apt-get update -y && apt-get upgrade -y; \ - apt-get install -y wget \ + apt-get install -y --no-install-recommends \ + wget \ tar \ lld \ make \ @@ -24,9 +25,12 @@ RUN apt-get update -y && apt-get upgrade -y; \ libc++abi-dev \ pkg-config \ git \ - clang + clang; \ + rm -rf /var/lib/apt/lists/* +# Export openmpi path to later use it in the github workflow. ENV OMPI_INSTALL_PATH=/opt/install_openmpi_clang +ENV PATH="$OMPI_INSTALL_PATH/bin:$PATH" # Install openmpi with clang compiler. RUN mkdir install_ompi_clang; \ From 85e2be9f628e7ed5a179723db514d1fd398fad5c Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 6 Jan 2026 10:50:59 +0100 Subject: [PATCH 06/49] Install ca-certificates --- clang/ubuntu/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 6c6153c..b73d6b3 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -25,7 +25,8 @@ RUN apt-get update -y && apt-get upgrade -y; \ libc++abi-dev \ pkg-config \ git \ - clang; \ + clang \ + ca-certificates; \ rm -rf /var/lib/apt/lists/* # Export openmpi path to later use it in the github workflow. From e662396e054e961c199f47d50b246541b5c3cbf2 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 6 Jan 2026 11:37:52 +0100 Subject: [PATCH 07/49] Removed --no-install-recommends again --- clang/ubuntu/Dockerfile | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index b73d6b3..f5dc0cc 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -13,8 +13,7 @@ ENV LD_LIBRARY_PATH=/usr/local/lib # Install required packages (without recommends to avoid gcc). RUN apt-get update -y && apt-get upgrade -y; \ - apt-get install -y --no-install-recommends \ - wget \ + apt-get install -y wget \ tar \ lld \ make \ @@ -26,9 +25,7 @@ RUN apt-get update -y && apt-get upgrade -y; \ pkg-config \ git \ clang \ - ca-certificates; \ - rm -rf /var/lib/apt/lists/* - + ca-certificates # Export openmpi path to later use it in the github workflow. ENV OMPI_INSTALL_PATH=/opt/install_openmpi_clang ENV PATH="$OMPI_INSTALL_PATH/bin:$PATH" From e170395ce873471747fdd525eb4056f158377e53 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 13 Jan 2026 08:55:28 +0100 Subject: [PATCH 08/49] Try building VTK with Clang --- .github/workflows/docker-image.yml | 12 ++++++------ clang/ubuntu/Dockerfile | 27 ++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 3f9fe06..8dbb7b1 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -22,12 +22,12 @@ jobs: - name: Build the docker image run: | docker build --tag dlramr/t8code-${{ matrix.target_os }}:t8-clang-dependencies clang/${{ matrix.target_os }} - - name: Push the docker image - env: # Set the secret as an input - docker_token: ${{ secrets.DOCKER_TOKEN }} - run: | - echo ${{ env.docker_token }} | docker login --username dlramr --password-stdin - docker push dlramr/t8code-${{ matrix.target_os }}:t8-clang-dependencies + # - name: Push the docker image + # env: # Set the secret as an input + # docker_token: ${{ secrets.DOCKER_TOKEN }} + # run: | + # echo ${{ env.docker_token }} | docker login --username dlramr --password-stdin + # docker push dlramr/t8code-${{ matrix.target_os }}:t8-clang-dependencies # t8_dependencies: # strategy: # fail-fast: false diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index f5dc0cc..9c07454 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -3,6 +3,9 @@ LABEL org.opencontainers.image.authors="Thomas Spenke " LABEL Description="Ubuntu 22.04 with clang and openmpi setup to be uses with t8code" SHELL ["/bin/bash", "-c"] +ARG vtk_version=9.1.0 +ARG vtk_library_version=9.1 + ENV DEBIAN_FRONTEND=noninteractive ENV LIBRARY_PATH=/usr/local/lib ENV LD_LIBRARY_PATH=/usr/local/lib @@ -31,10 +34,32 @@ ENV OMPI_INSTALL_PATH=/opt/install_openmpi_clang ENV PATH="$OMPI_INSTALL_PATH/bin:$PATH" # Install openmpi with clang compiler. +# TODO: Make version an ARG as in vtk? RUN mkdir install_ompi_clang; \ wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.gz; \ tar xf openmpi-4.1.6.tar.gz; \ cd openmpi-4.1.6; \ CC=clang CXX=clang++ ./configure --prefix=$OMPI_INSTALL_PATH; \ make -j$(nproc); \ - make install \ No newline at end of file + make install + +# Install vtk library with clang compiler +RUN git clone https://github.com/Kitware/VTK.git; \ + cd VTK; \ + git checkout v${vtk_version}; \ +# configure build with cmake + mkdir -p build && cd build ; \ + cmake .. \ + -DBUILD_TESTING=OFF \ + -DCMAKE_BUILD_TYPE=Release \ + -DVTK_USE_MPI=ON \ + -DVTK_GROUP_ENABLE_MPI=YES \ + -GNinja; \ +# build and install vtk + make -j4; \ + make install -j4; \ +# cleanup + cd ../.. && rm -rf VTK + + + From 6706765f5e0168c18191c548d980fa3412ee953d Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 13 Jan 2026 09:58:48 +0100 Subject: [PATCH 09/49] Use Clang for VTK build --- clang/ubuntu/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 9c07454..360f075 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -50,6 +50,8 @@ RUN git clone https://github.com/Kitware/VTK.git; \ # configure build with cmake mkdir -p build && cd build ; \ cmake .. \ + -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ + -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ -DBUILD_TESTING=OFF \ -DCMAKE_BUILD_TYPE=Release \ -DVTK_USE_MPI=ON \ From b8b892dcafe6922dcd5aa28b6ed1b76e395f28db Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 13 Jan 2026 10:09:03 +0100 Subject: [PATCH 10/49] Add some more vtk dependencies --- clang/ubuntu/Dockerfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 360f075..f32462b 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -28,7 +28,13 @@ RUN apt-get update -y && apt-get upgrade -y; \ pkg-config \ git \ clang \ - ca-certificates + ca-certificates \ +# Added for vtk library + libgl1-mesa-dev libx11-dev libxmu-dev libxi-dev \ + libxt-dev libxrender-dev libxrandr-dev \ + libwayland-dev wayland-protocols \ + libfontconfig1-dev libfreetype6-dev \ + libxkbcommon-dev libdrm-dev # Export openmpi path to later use it in the github workflow. ENV OMPI_INSTALL_PATH=/opt/install_openmpi_clang ENV PATH="$OMPI_INSTALL_PATH/bin:$PATH" From 8b87768fe3f5004cd1c20afe61a7dfd4a024c76f Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 13 Jan 2026 10:20:26 +0100 Subject: [PATCH 11/49] Add vtk install path --- clang/ubuntu/Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index f32462b..6d97896 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -49,6 +49,8 @@ RUN mkdir install_ompi_clang; \ make -j$(nproc); \ make install +ENV VTK_INSTALL_PATH=/opt/install_vtk_clang + # Install vtk library with clang compiler RUN git clone https://github.com/Kitware/VTK.git; \ cd VTK; \ @@ -58,6 +60,7 @@ RUN git clone https://github.com/Kitware/VTK.git; \ cmake .. \ -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ + -DCMAKE_INSTALL_PREFIX=${VTK_INSTALL_PATH} \ -DBUILD_TESTING=OFF \ -DCMAKE_BUILD_TYPE=Release \ -DVTK_USE_MPI=ON \ From 674c76fd83df2f07f79ef885dbf28176fc0aaa60 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 13 Jan 2026 10:39:22 +0100 Subject: [PATCH 12/49] Use make for VTK library --- clang/ubuntu/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 6d97896..accce8a 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -64,8 +64,7 @@ RUN git clone https://github.com/Kitware/VTK.git; \ -DBUILD_TESTING=OFF \ -DCMAKE_BUILD_TYPE=Release \ -DVTK_USE_MPI=ON \ - -DVTK_GROUP_ENABLE_MPI=YES \ - -GNinja; \ + -DVTK_GROUP_ENABLE_MPI=YES # build and install vtk make -j4; \ make install -j4; \ From 065fa474c4abe4bc82634365051b57df521fd59f Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 13 Jan 2026 10:48:48 +0100 Subject: [PATCH 13/49] Try again --- clang/ubuntu/Dockerfile | 43 +++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index accce8a..3468338 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -34,7 +34,12 @@ RUN apt-get update -y && apt-get upgrade -y; \ libxt-dev libxrender-dev libxrandr-dev \ libwayland-dev wayland-protocols \ libfontconfig1-dev libfreetype6-dev \ - libxkbcommon-dev libdrm-dev + libxkbcommon-dev libdrm-dev \ +# Added for OpenCASCADE + libtbb-dev \ + libpng-dev libjpeg-dev libtiff-dev \ + libopenexr-dev + # Export openmpi path to later use it in the github workflow. ENV OMPI_INSTALL_PATH=/opt/install_openmpi_clang ENV PATH="$OMPI_INSTALL_PATH/bin:$PATH" @@ -58,18 +63,40 @@ RUN git clone https://github.com/Kitware/VTK.git; \ # configure build with cmake mkdir -p build && cd build ; \ cmake .. \ - -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ - -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ - -DCMAKE_INSTALL_PREFIX=${VTK_INSTALL_PATH} \ - -DBUILD_TESTING=OFF \ - -DCMAKE_BUILD_TYPE=Release \ - -DVTK_USE_MPI=ON \ - -DVTK_GROUP_ENABLE_MPI=YES + -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ + -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ + -DCMAKE_INSTALL_PREFIX=${VTK_INSTALL_PATH} \ + -DBUILD_TESTING=OFF \ + -DCMAKE_BUILD_TYPE=Release \ + -DVTK_USE_MPI=ON \ + -DVTK_GROUP_ENABLE_MPI=YES; \ # build and install vtk make -j4; \ make install -j4; \ # cleanup cd ../.. && rm -rf VTK +ENV OCCT_INSTALL_PATH=/opt/install_opencascade_clang + +RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ + cd OCCT + git checkout V7_8_0 + # configure build with cmake + mkdir -p build && cd build ; \ + cmake .. \ + -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ + -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ + -DCMAKE_INSTALL_PREFIX=${OCCT_INSTALL_PATH} \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_LIBRARY_TYPE=Shared \ + -DUSE_TBB=ON \ + -DUSE_FREETYPE=ON \ + -DUSE_OPENGL=ON +# build and install OpenCASCADE + make -j4; \ + make install -j4; \ +# cleanup + cd ../.. && rm -rf OCCT + From da9be58c1385a567302f38dd7f6c41f995791f55 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 13 Jan 2026 10:53:42 +0100 Subject: [PATCH 14/49] Try again --- clang/ubuntu/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 3468338..8cdbfe7 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -79,8 +79,8 @@ RUN git clone https://github.com/Kitware/VTK.git; \ ENV OCCT_INSTALL_PATH=/opt/install_opencascade_clang RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ - cd OCCT - git checkout V7_8_0 + cd OCCT; \ + git checkout V7_8_0; \ # configure build with cmake mkdir -p build && cd build ; \ cmake .. \ @@ -91,7 +91,7 @@ RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ -DBUILD_LIBRARY_TYPE=Shared \ -DUSE_TBB=ON \ -DUSE_FREETYPE=ON \ - -DUSE_OPENGL=ON + -DUSE_OPENGL=ON; \ # build and install OpenCASCADE make -j4; \ make install -j4; \ From 367a16fe920d9210b422cccf6dbac701d97e3bc4 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 13 Jan 2026 11:14:41 +0100 Subject: [PATCH 15/49] Add HDF5 and NetCDF --- clang/ubuntu/Dockerfile | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 8cdbfe7..42f5a18 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -38,7 +38,10 @@ RUN apt-get update -y && apt-get upgrade -y; \ # Added for OpenCASCADE libtbb-dev \ libpng-dev libjpeg-dev libtiff-dev \ - libopenexr-dev + libopenexr-dev \ +# Added for netcdf + autoconf automake libtool m4 \ + zlib1g-dev libcurl4-openssl-dev # Export openmpi path to later use it in the github workflow. ENV OMPI_INSTALL_PATH=/opt/install_openmpi_clang @@ -54,6 +57,38 @@ RUN mkdir install_ompi_clang; \ make -j$(nproc); \ make install +# Install HDF5 +ENV HDF5_INSTALL_PATH=/opt/install_hdf5_clang +RUN wget https://github.com/HDFGroup/hdf5/archive/refs/tags/hdf5-1_14_4.tar.gz; \ + tar xf hdf5-1_14_4.tar.gz; \ + cd hdf5-hdf5-1_14_4; \ + ./configure \ + --prefix=${HDF5_INSTALL_PATH} \ + --enable-parallel \ + --enable-shared \ + --enable-hl \ + CC=${OMPI_INSTALL_PATH}/bin/mpicc \ + CXX=${OMPI_INSTALL_PATH}/bin/mpicxx; \ + make -j4 ; \ + make install; \ + cd .. + +# Install netcdf-c +ENV NETCDF_INSTALL_PATH=/opt/install_netcdf_clang +RUN wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.2.tar.gz; \ + tar xf v4.9.2.tar.gz; \ + cd netcdf-c-4.9.2; \ + export CPPFLAGS="-I${HDF5_INSTALL_PATH}/include"; \ + export LDFLAGS="-L${HDF5_INSTALL_PATH}/lib"; \ + ./configure \ + --prefix=${NETCDF_INSTALL_PATH} \ + --enable-parallel-tests \ + --enable-shared \ + CC=${OMPI_INSTALL_PATH}/bin/mpicc; \ + make -j4; \ + sudo make install; \ + cd .. + ENV VTK_INSTALL_PATH=/opt/install_vtk_clang # Install vtk library with clang compiler @@ -70,14 +105,16 @@ RUN git clone https://github.com/Kitware/VTK.git; \ -DCMAKE_BUILD_TYPE=Release \ -DVTK_USE_MPI=ON \ -DVTK_GROUP_ENABLE_MPI=YES; \ + -DNetCDF_ROOT=${NETCDF_INSTALL_PATH} \ + -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ # build and install vtk make -j4; \ make install -j4; \ # cleanup cd ../.. && rm -rf VTK +# Install OpenCASCADE ENV OCCT_INSTALL_PATH=/opt/install_opencascade_clang - RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ cd OCCT; \ git checkout V7_8_0; \ From 3870baebf2c010bbacd2f5445a3aee222eb3376b Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 13 Jan 2026 11:30:45 +0100 Subject: [PATCH 16/49] Use ninja instead of make for cmake-based build chains --- clang/ubuntu/Dockerfile | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 42f5a18..6301ad4 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -108,8 +108,8 @@ RUN git clone https://github.com/Kitware/VTK.git; \ -DNetCDF_ROOT=${NETCDF_INSTALL_PATH} \ -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ # build and install vtk - make -j4; \ - make install -j4; \ + ninja -j4; \ + ninja install -j4; \ # cleanup cd ../.. && rm -rf VTK @@ -128,10 +128,11 @@ RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ -DBUILD_LIBRARY_TYPE=Shared \ -DUSE_TBB=ON \ -DUSE_FREETYPE=ON \ - -DUSE_OPENGL=ON; \ + -DUSE_OPENGL=ON \ + -DBUILD_DRAW=OFF; \ # build and install OpenCASCADE - make -j4; \ - make install -j4; \ + ninja -j4; \ + ninja install -j4; \ # cleanup cd ../.. && rm -rf OCCT From c2b7a5bad27ef234e423725e3ae1e1f1cdd7cd1b Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 13 Jan 2026 12:51:04 +0100 Subject: [PATCH 17/49] Try other hdf5 url --- clang/ubuntu/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 6301ad4..7c214ca 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -59,9 +59,9 @@ RUN mkdir install_ompi_clang; \ # Install HDF5 ENV HDF5_INSTALL_PATH=/opt/install_hdf5_clang -RUN wget https://github.com/HDFGroup/hdf5/archive/refs/tags/hdf5-1_14_4.tar.gz; \ - tar xf hdf5-1_14_4.tar.gz; \ - cd hdf5-hdf5-1_14_4; \ +RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz \ + tar xf hdf5-1.14.6.tar.gz; \ + cd hdf5-1.14.6; \ ./configure \ --prefix=${HDF5_INSTALL_PATH} \ --enable-parallel \ From 1880f6c1ee3a8a89da35a8bbd02147e0035c0362 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 13 Jan 2026 13:06:44 +0100 Subject: [PATCH 18/49] Fix typo --- clang/ubuntu/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 7c214ca..ac4f7e5 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -59,7 +59,7 @@ RUN mkdir install_ompi_clang; \ # Install HDF5 ENV HDF5_INSTALL_PATH=/opt/install_hdf5_clang -RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz \ +RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz; \ tar xf hdf5-1.14.6.tar.gz; \ cd hdf5-1.14.6; \ ./configure \ From 4600074505443f07a01db9dcac946468c62f6b65 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 13 Jan 2026 13:23:14 +0100 Subject: [PATCH 19/49] Try again --- clang/ubuntu/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index ac4f7e5..101adfe 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -17,6 +17,7 @@ ENV LD_LIBRARY_PATH=/usr/local/lib # Install required packages (without recommends to avoid gcc). RUN apt-get update -y && apt-get upgrade -y; \ apt-get install -y wget \ + sudo \ tar \ lld \ make \ @@ -86,7 +87,7 @@ RUN wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.2.tar.gz; \ --enable-shared \ CC=${OMPI_INSTALL_PATH}/bin/mpicc; \ make -j4; \ - sudo make install; \ + make install; \ cd .. ENV VTK_INSTALL_PATH=/opt/install_vtk_clang From 7adcc1662146f79641a19758cdf2877c3f4a86f0 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 13 Jan 2026 13:41:13 +0100 Subject: [PATCH 20/49] More fixes --- clang/ubuntu/Dockerfile | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 101adfe..763900f 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -105,9 +105,10 @@ RUN git clone https://github.com/Kitware/VTK.git; \ -DBUILD_TESTING=OFF \ -DCMAKE_BUILD_TYPE=Release \ -DVTK_USE_MPI=ON \ - -DVTK_GROUP_ENABLE_MPI=YES; \ + -DVTK_GROUP_ENABLE_MPI=YES \ -DNetCDF_ROOT=${NETCDF_INSTALL_PATH} \ -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ + -GNinja; \ # build and install vtk ninja -j4; \ ninja install -j4; \ @@ -115,7 +116,7 @@ RUN git clone https://github.com/Kitware/VTK.git; \ cd ../.. && rm -rf VTK # Install OpenCASCADE -ENV OCCT_INSTALL_PATH=/opt/install_opencascade_clang +ENV OCCT_INSTALL_PATH=/opt/install_occt_clang RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ cd OCCT; \ git checkout V7_8_0; \ @@ -126,11 +127,13 @@ RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ -DCMAKE_INSTALL_PREFIX=${OCCT_INSTALL_PATH} \ -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_DRAW=OFF \ -DBUILD_LIBRARY_TYPE=Shared \ -DUSE_TBB=ON \ -DUSE_FREETYPE=ON \ -DUSE_OPENGL=ON \ - -DBUILD_DRAW=OFF; \ + -GNinja; \ + # build and install OpenCASCADE ninja -j4; \ ninja install -j4; \ From 50212fe3931d1d6747459523c967c1f39702738c Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 13 Jan 2026 14:27:37 +0100 Subject: [PATCH 21/49] Remove whitespace. --- clang/ubuntu/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 763900f..2411b56 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -133,7 +133,6 @@ RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ -DUSE_FREETYPE=ON \ -DUSE_OPENGL=ON \ -GNinja; \ - # build and install OpenCASCADE ninja -j4; \ ninja install -j4; \ From 1033e0e07b333850444c61aad46eadb59d4dd610 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 13 Jan 2026 15:38:05 +0100 Subject: [PATCH 22/49] Try clean build dirs for cmake builds --- clang/ubuntu/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 2411b56..606007f 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -97,7 +97,7 @@ RUN git clone https://github.com/Kitware/VTK.git; \ cd VTK; \ git checkout v${vtk_version}; \ # configure build with cmake - mkdir -p build && cd build ; \ + rm -rf build && mkdir -p build && cd build ; \ cmake .. \ -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ @@ -121,7 +121,7 @@ RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ cd OCCT; \ git checkout V7_8_0; \ # configure build with cmake - mkdir -p build && cd build ; \ + rm -rf build && mkdir -p build && cd build ; \ cmake .. \ -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ From 1c87fc6c36de460d426f532fbfcc3377ef2da886 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 14 Jan 2026 09:07:36 +0100 Subject: [PATCH 23/49] Change order and try different flags for OCCT --- clang/ubuntu/Dockerfile | 55 ++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 606007f..f62fe01 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -58,6 +58,32 @@ RUN mkdir install_ompi_clang; \ make -j$(nproc); \ make install +# Install OpenCASCADE +ENV OCCT_INSTALL_PATH=/opt/install_occt_clang +RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ + cd OCCT; \ + git checkout V7_8_0; \ + # configure build with cmake + rm -rf build && mkdir -p build && cd build ; \ + cmake .. \ + -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ + -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ + -DCMAKE_INSTALL_PREFIX=${OCCT_INSTALL_PATH} \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_DRAW=OFF \ + -DUSE_TCL=OFF \ + -DUSE_TK=OFF \ + -DBUILD_LIBRARY_TYPE=Shared \ + -DUSE_TBB=ON \ + -DUSE_FREETYPE=ON \ + -DUSE_OPENGL=ON \ + -GNinja; \ +# build and install OpenCASCADE + ninja -j4; \ + ninja install -j4; \ +# cleanup + cd ../.. && rm -rf OCCT + # Install HDF5 ENV HDF5_INSTALL_PATH=/opt/install_hdf5_clang RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz; \ @@ -113,31 +139,4 @@ RUN git clone https://github.com/Kitware/VTK.git; \ ninja -j4; \ ninja install -j4; \ # cleanup - cd ../.. && rm -rf VTK - -# Install OpenCASCADE -ENV OCCT_INSTALL_PATH=/opt/install_occt_clang -RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ - cd OCCT; \ - git checkout V7_8_0; \ - # configure build with cmake - rm -rf build && mkdir -p build && cd build ; \ - cmake .. \ - -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ - -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ - -DCMAKE_INSTALL_PREFIX=${OCCT_INSTALL_PATH} \ - -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_DRAW=OFF \ - -DBUILD_LIBRARY_TYPE=Shared \ - -DUSE_TBB=ON \ - -DUSE_FREETYPE=ON \ - -DUSE_OPENGL=ON \ - -GNinja; \ -# build and install OpenCASCADE - ninja -j4; \ - ninja install -j4; \ -# cleanup - cd ../.. && rm -rf OCCT - - - + cd ../.. && rm -rf VTK \ No newline at end of file From 1b22c1ab5d7e9cb8abfa6c98986bdef5cf7db01d Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 14 Jan 2026 09:40:05 +0100 Subject: [PATCH 24/49] Try more OCCT flags --- clang/ubuntu/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index f62fe01..991cca2 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -134,6 +134,8 @@ RUN git clone https://github.com/Kitware/VTK.git; \ -DVTK_GROUP_ENABLE_MPI=YES \ -DNetCDF_ROOT=${NETCDF_INSTALL_PATH} \ -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ + -D3RDPARTY_TCL_INCLUDE_DIR:PATH=IGNORE \ + -D3RDPARTY_TK_INCLUDE_DIR:PATH=IGNORE \ -GNinja; \ # build and install vtk ninja -j4; \ From 372e2a7e574222f2f9f023d27a139511eb06666c Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 14 Jan 2026 09:55:40 +0100 Subject: [PATCH 25/49] Try again --- clang/ubuntu/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 991cca2..8033fe6 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -73,6 +73,8 @@ RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ -DBUILD_DRAW=OFF \ -DUSE_TCL=OFF \ -DUSE_TK=OFF \ + -D3RDPARTY_TCL_INCLUDE_DIR:PATH=IGNORE \ + -D3RDPARTY_TK_INCLUDE_DIR:PATH=IGNORE \ -DBUILD_LIBRARY_TYPE=Shared \ -DUSE_TBB=ON \ -DUSE_FREETYPE=ON \ @@ -134,8 +136,6 @@ RUN git clone https://github.com/Kitware/VTK.git; \ -DVTK_GROUP_ENABLE_MPI=YES \ -DNetCDF_ROOT=${NETCDF_INSTALL_PATH} \ -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ - -D3RDPARTY_TCL_INCLUDE_DIR:PATH=IGNORE \ - -D3RDPARTY_TK_INCLUDE_DIR:PATH=IGNORE \ -GNinja; \ # build and install vtk ninja -j4; \ From eea462721f5e40b008cee15a10ba422018681007 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 14 Jan 2026 10:12:18 +0100 Subject: [PATCH 26/49] Try again --- clang/ubuntu/Dockerfile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 8033fe6..033341f 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -74,7 +74,11 @@ RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ -DUSE_TCL=OFF \ -DUSE_TK=OFF \ -D3RDPARTY_TCL_INCLUDE_DIR:PATH=IGNORE \ + -D3RDPARTY_TCL_LIBRARY:FILEPATH=IGNORE \ + -D3RDPARTY_TCL_LIBRARY_DIR:PATH=IGNORE \ -D3RDPARTY_TK_INCLUDE_DIR:PATH=IGNORE \ + -D3RDPARTY_TK_LIBRARY:FILEPATH=IGNORE \ + -D3RDPARTY_TK_LIBRARY_DIR:PATH=IGNORE \ -DBUILD_LIBRARY_TYPE=Shared \ -DUSE_TBB=ON \ -DUSE_FREETYPE=ON \ From 5ae4c6f8df4b207fbd562364443ac6e561eacc13 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 14 Jan 2026 10:32:27 +0100 Subject: [PATCH 27/49] Try again --- clang/ubuntu/Dockerfile | 119 ++++++++++++++++++++-------------------- 1 file changed, 60 insertions(+), 59 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 033341f..18accef 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -44,6 +44,11 @@ RUN apt-get update -y && apt-get upgrade -y; \ autoconf automake libtool m4 \ zlib1g-dev libcurl4-openssl-dev +# Required for OpenCASCADE +RUN apt-get update && apt-get install -y --no-install-recommends \ + tcl-dev \ + tk-dev + # Export openmpi path to later use it in the github workflow. ENV OMPI_INSTALL_PATH=/opt/install_openmpi_clang ENV PATH="$OMPI_INSTALL_PATH/bin:$PATH" @@ -58,6 +63,8 @@ RUN mkdir install_ompi_clang; \ make -j$(nproc); \ make install + + # Install OpenCASCADE ENV OCCT_INSTALL_PATH=/opt/install_occt_clang RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ @@ -73,12 +80,6 @@ RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ -DBUILD_DRAW=OFF \ -DUSE_TCL=OFF \ -DUSE_TK=OFF \ - -D3RDPARTY_TCL_INCLUDE_DIR:PATH=IGNORE \ - -D3RDPARTY_TCL_LIBRARY:FILEPATH=IGNORE \ - -D3RDPARTY_TCL_LIBRARY_DIR:PATH=IGNORE \ - -D3RDPARTY_TK_INCLUDE_DIR:PATH=IGNORE \ - -D3RDPARTY_TK_LIBRARY:FILEPATH=IGNORE \ - -D3RDPARTY_TK_LIBRARY_DIR:PATH=IGNORE \ -DBUILD_LIBRARY_TYPE=Shared \ -DUSE_TBB=ON \ -DUSE_FREETYPE=ON \ @@ -90,59 +91,59 @@ RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ # cleanup cd ../.. && rm -rf OCCT -# Install HDF5 -ENV HDF5_INSTALL_PATH=/opt/install_hdf5_clang -RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz; \ - tar xf hdf5-1.14.6.tar.gz; \ - cd hdf5-1.14.6; \ - ./configure \ - --prefix=${HDF5_INSTALL_PATH} \ - --enable-parallel \ - --enable-shared \ - --enable-hl \ - CC=${OMPI_INSTALL_PATH}/bin/mpicc \ - CXX=${OMPI_INSTALL_PATH}/bin/mpicxx; \ - make -j4 ; \ - make install; \ - cd .. +# # Install HDF5 +# ENV HDF5_INSTALL_PATH=/opt/install_hdf5_clang +# RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz; \ +# tar xf hdf5-1.14.6.tar.gz; \ +# cd hdf5-1.14.6; \ +# ./configure \ +# --prefix=${HDF5_INSTALL_PATH} \ +# --enable-parallel \ +# --enable-shared \ +# --enable-hl \ +# CC=${OMPI_INSTALL_PATH}/bin/mpicc \ +# CXX=${OMPI_INSTALL_PATH}/bin/mpicxx; \ +# make -j4 ; \ +# make install; \ +# cd .. -# Install netcdf-c -ENV NETCDF_INSTALL_PATH=/opt/install_netcdf_clang -RUN wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.2.tar.gz; \ - tar xf v4.9.2.tar.gz; \ - cd netcdf-c-4.9.2; \ - export CPPFLAGS="-I${HDF5_INSTALL_PATH}/include"; \ - export LDFLAGS="-L${HDF5_INSTALL_PATH}/lib"; \ - ./configure \ - --prefix=${NETCDF_INSTALL_PATH} \ - --enable-parallel-tests \ - --enable-shared \ - CC=${OMPI_INSTALL_PATH}/bin/mpicc; \ - make -j4; \ - make install; \ - cd .. +# # Install netcdf-c +# ENV NETCDF_INSTALL_PATH=/opt/install_netcdf_clang +# RUN wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.2.tar.gz; \ +# tar xf v4.9.2.tar.gz; \ +# cd netcdf-c-4.9.2; \ +# export CPPFLAGS="-I${HDF5_INSTALL_PATH}/include"; \ +# export LDFLAGS="-L${HDF5_INSTALL_PATH}/lib"; \ +# ./configure \ +# --prefix=${NETCDF_INSTALL_PATH} \ +# --enable-parallel-tests \ +# --enable-shared \ +# CC=${OMPI_INSTALL_PATH}/bin/mpicc; \ +# make -j4; \ +# make install; \ +# cd .. -ENV VTK_INSTALL_PATH=/opt/install_vtk_clang +# ENV VTK_INSTALL_PATH=/opt/install_vtk_clang -# Install vtk library with clang compiler -RUN git clone https://github.com/Kitware/VTK.git; \ - cd VTK; \ - git checkout v${vtk_version}; \ -# configure build with cmake - rm -rf build && mkdir -p build && cd build ; \ - cmake .. \ - -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ - -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ - -DCMAKE_INSTALL_PREFIX=${VTK_INSTALL_PATH} \ - -DBUILD_TESTING=OFF \ - -DCMAKE_BUILD_TYPE=Release \ - -DVTK_USE_MPI=ON \ - -DVTK_GROUP_ENABLE_MPI=YES \ - -DNetCDF_ROOT=${NETCDF_INSTALL_PATH} \ - -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ - -GNinja; \ -# build and install vtk - ninja -j4; \ - ninja install -j4; \ -# cleanup - cd ../.. && rm -rf VTK \ No newline at end of file +# # Install vtk library with clang compiler +# RUN git clone https://github.com/Kitware/VTK.git; \ +# cd VTK; \ +# git checkout v${vtk_version}; \ +# # configure build with cmake +# rm -rf build && mkdir -p build && cd build ; \ +# cmake .. \ +# -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ +# -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ +# -DCMAKE_INSTALL_PREFIX=${VTK_INSTALL_PATH} \ +# -DBUILD_TESTING=OFF \ +# -DCMAKE_BUILD_TYPE=Release \ +# -DVTK_USE_MPI=ON \ +# -DVTK_GROUP_ENABLE_MPI=YES \ +# -DNetCDF_ROOT=${NETCDF_INSTALL_PATH} \ +# -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ +# -GNinja; \ +# # build and install vtk +# ninja -j4; \ +# ninja install -j4; \ +# # cleanup +# cd ../.. && rm -rf VTK \ No newline at end of file From 2430cbff1b44aacc58875671dd2dcebd06ef46ce Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 14 Jan 2026 10:43:15 +0100 Subject: [PATCH 28/49] Try again --- clang/ubuntu/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 18accef..da29656 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -47,7 +47,9 @@ RUN apt-get update -y && apt-get upgrade -y; \ # Required for OpenCASCADE RUN apt-get update && apt-get install -y --no-install-recommends \ tcl-dev \ - tk-dev + tk-dev \ + libtbb-dev + # Export openmpi path to later use it in the github workflow. ENV OMPI_INSTALL_PATH=/opt/install_openmpi_clang From 9e8d9bac714eae75d5c8660b2188981d7f8b428d Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 14 Jan 2026 10:54:39 +0100 Subject: [PATCH 29/49] Try libtbb2 --- clang/ubuntu/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index da29656..aa26c9b 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -48,7 +48,8 @@ RUN apt-get update -y && apt-get upgrade -y; \ RUN apt-get update && apt-get install -y --no-install-recommends \ tcl-dev \ tk-dev \ - libtbb-dev + libtbb-dev \ + libtbb2 # Export openmpi path to later use it in the github workflow. From 373806fa6ee44b16f2c047a2a540762a62f88055 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 14 Jan 2026 11:15:45 +0100 Subject: [PATCH 30/49] Add PATH IGNOREs again --- clang/ubuntu/Dockerfile | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index aa26c9b..7b97486 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -70,7 +70,8 @@ RUN mkdir install_ompi_clang; \ # Install OpenCASCADE ENV OCCT_INSTALL_PATH=/opt/install_occt_clang -RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ +RUN set -e; \ + git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ cd OCCT; \ git checkout V7_8_0; \ # configure build with cmake @@ -83,6 +84,12 @@ RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ -DBUILD_DRAW=OFF \ -DUSE_TCL=OFF \ -DUSE_TK=OFF \ + -D3RDPARTY_TCL_INCLUDE_DIR:PATH=IGNORE \ + -D3RDPARTY_TCL_LIBRARY:FILEPATH=IGNORE \ + -D3RDPARTY_TCL_LIBRARY_DIR:PATH=IGNORE \ + -D3RDPARTY_TK_INCLUDE_DIR:PATH=IGNORE \ + -D3RDPARTY_TK_LIBRARY:FILEPATH=IGNORE \ + -D3RDPARTY_TK_LIBRARY_DIR:PATH=IGNORE \ -DBUILD_LIBRARY_TYPE=Shared \ -DUSE_TBB=ON \ -DUSE_FREETYPE=ON \ From ce340e2ac24eb977e8d23068a187598b2b78505f Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 14 Jan 2026 12:47:34 +0100 Subject: [PATCH 31/49] Try stuff --- clang/ubuntu/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 7b97486..27aefe3 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -51,7 +51,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ libtbb-dev \ libtbb2 - # Export openmpi path to later use it in the github workflow. ENV OMPI_INSTALL_PATH=/opt/install_openmpi_clang ENV PATH="$OMPI_INSTALL_PATH/bin:$PATH" @@ -70,7 +69,8 @@ RUN mkdir install_ompi_clang; \ # Install OpenCASCADE ENV OCCT_INSTALL_PATH=/opt/install_occt_clang -RUN set -e; \ +RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ + set -e; \ git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ cd OCCT; \ git checkout V7_8_0; \ From 908f79e26f9e3f7d0ecf6e7f681b89ef9cf87c1d Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 14 Jan 2026 12:59:14 +0100 Subject: [PATCH 32/49] Trying more desperate stuff --- clang/ubuntu/Dockerfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 27aefe3..260d539 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -65,6 +65,9 @@ RUN mkdir install_ompi_clang; \ make -j$(nproc); \ make install +RUN cd /usr/lib/x86_64-linux-gnu; \ + ln -sf libtbb.so.12 libtbb.so; \ + ln -sf libtbbmalloc.so.2 libtbbmalloc.so; \ # Install OpenCASCADE @@ -90,6 +93,8 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ -D3RDPARTY_TK_INCLUDE_DIR:PATH=IGNORE \ -D3RDPARTY_TK_LIBRARY:FILEPATH=IGNORE \ -D3RDPARTY_TK_LIBRARY_DIR:PATH=IGNORE \ + -D3RDPARTY_TBB_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ + -D3RDPARTY_TBBMALLOC_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ -DBUILD_LIBRARY_TYPE=Shared \ -DUSE_TBB=ON \ -DUSE_FREETYPE=ON \ From c2b9cf29ee311d65e77fb32c12841e18b8f7714f Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 14 Jan 2026 13:13:09 +0100 Subject: [PATCH 33/49] typos --- clang/ubuntu/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 260d539..49b8082 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -67,7 +67,7 @@ RUN mkdir install_ompi_clang; \ RUN cd /usr/lib/x86_64-linux-gnu; \ ln -sf libtbb.so.12 libtbb.so; \ - ln -sf libtbbmalloc.so.2 libtbbmalloc.so; \ + ln -sf libtbbmalloc.so.2 libtbbmalloc.so # Install OpenCASCADE From 006027fad6f20587625f5bf7936b864f5eafdb06 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 14 Jan 2026 13:24:05 +0100 Subject: [PATCH 34/49] Getting desperate --- clang/ubuntu/Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 49b8082..b446158 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -66,8 +66,9 @@ RUN mkdir install_ompi_clang; \ make install RUN cd /usr/lib/x86_64-linux-gnu; \ - ln -sf libtbb.so.12 libtbb.so; \ - ln -sf libtbbmalloc.so.2 libtbbmalloc.so + rm libtbb.so libtbbmalloc.so; \ + ln -s libtbb.so.12 libtbb.so; \ + ln -s libtbbmalloc.so.2 libtbbmalloc.so # Install OpenCASCADE From 9e7ec7539c8256e12f3eaa16597b1f083101a353 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 14 Jan 2026 13:31:58 +0100 Subject: [PATCH 35/49] Test without TBB --- clang/ubuntu/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index b446158..8c983eb 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -97,7 +97,7 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ -D3RDPARTY_TBB_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ -D3RDPARTY_TBBMALLOC_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ -DBUILD_LIBRARY_TYPE=Shared \ - -DUSE_TBB=ON \ + -DUSE_TBB=OFF \ -DUSE_FREETYPE=ON \ -DUSE_OPENGL=ON \ -GNinja; \ From 75f54c8ed658bc8903b981b18e3eda3893bd3585 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 14 Jan 2026 14:23:46 +0100 Subject: [PATCH 36/49] Try with TBB again --- clang/ubuntu/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 8c983eb..41ba1e5 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -77,7 +77,7 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ set -e; \ git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ cd OCCT; \ - git checkout V7_8_0; \ + # git checkout V7_8_0; \ # configure build with cmake rm -rf build && mkdir -p build && cd build ; \ cmake .. \ @@ -97,7 +97,7 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ -D3RDPARTY_TBB_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ -D3RDPARTY_TBBMALLOC_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ -DBUILD_LIBRARY_TYPE=Shared \ - -DUSE_TBB=OFF \ + -DUSE_TBB=ON \ -DUSE_FREETYPE=ON \ -DUSE_OPENGL=ON \ -GNinja; \ From 57bc8a0a969bb2c771b61b2c7e0b006b23a82414 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 14 Jan 2026 15:29:56 +0100 Subject: [PATCH 37/49] Try pushing the image --- .github/workflows/docker-image.yml | 12 ++-- clang/ubuntu/Dockerfile | 106 ++++++++++++++--------------- 2 files changed, 59 insertions(+), 59 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 8dbb7b1..3f9fe06 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -22,12 +22,12 @@ jobs: - name: Build the docker image run: | docker build --tag dlramr/t8code-${{ matrix.target_os }}:t8-clang-dependencies clang/${{ matrix.target_os }} - # - name: Push the docker image - # env: # Set the secret as an input - # docker_token: ${{ secrets.DOCKER_TOKEN }} - # run: | - # echo ${{ env.docker_token }} | docker login --username dlramr --password-stdin - # docker push dlramr/t8code-${{ matrix.target_os }}:t8-clang-dependencies + - name: Push the docker image + env: # Set the secret as an input + docker_token: ${{ secrets.DOCKER_TOKEN }} + run: | + echo ${{ env.docker_token }} | docker login --username dlramr --password-stdin + docker push dlramr/t8code-${{ matrix.target_os }}:t8-clang-dependencies # t8_dependencies: # strategy: # fail-fast: false diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 41ba1e5..8421ead 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -107,59 +107,59 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ # cleanup cd ../.. && rm -rf OCCT -# # Install HDF5 -# ENV HDF5_INSTALL_PATH=/opt/install_hdf5_clang -# RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz; \ -# tar xf hdf5-1.14.6.tar.gz; \ -# cd hdf5-1.14.6; \ -# ./configure \ -# --prefix=${HDF5_INSTALL_PATH} \ -# --enable-parallel \ -# --enable-shared \ -# --enable-hl \ -# CC=${OMPI_INSTALL_PATH}/bin/mpicc \ -# CXX=${OMPI_INSTALL_PATH}/bin/mpicxx; \ -# make -j4 ; \ -# make install; \ -# cd .. +# Install HDF5 +ENV HDF5_INSTALL_PATH=/opt/install_hdf5_clang +RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz; \ + tar xf hdf5-1.14.6.tar.gz; \ + cd hdf5-1.14.6; \ + ./configure \ + --prefix=${HDF5_INSTALL_PATH} \ + --enable-parallel \ + --enable-shared \ + --enable-hl \ + CC=${OMPI_INSTALL_PATH}/bin/mpicc \ + CXX=${OMPI_INSTALL_PATH}/bin/mpicxx; \ + make -j4 ; \ + make install; \ + cd .. -# # Install netcdf-c -# ENV NETCDF_INSTALL_PATH=/opt/install_netcdf_clang -# RUN wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.2.tar.gz; \ -# tar xf v4.9.2.tar.gz; \ -# cd netcdf-c-4.9.2; \ -# export CPPFLAGS="-I${HDF5_INSTALL_PATH}/include"; \ -# export LDFLAGS="-L${HDF5_INSTALL_PATH}/lib"; \ -# ./configure \ -# --prefix=${NETCDF_INSTALL_PATH} \ -# --enable-parallel-tests \ -# --enable-shared \ -# CC=${OMPI_INSTALL_PATH}/bin/mpicc; \ -# make -j4; \ -# make install; \ -# cd .. +# Install netcdf-c +ENV NETCDF_INSTALL_PATH=/opt/install_netcdf_clang +RUN wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.2.tar.gz; \ + tar xf v4.9.2.tar.gz; \ + cd netcdf-c-4.9.2; \ + export CPPFLAGS="-I${HDF5_INSTALL_PATH}/include"; \ + export LDFLAGS="-L${HDF5_INSTALL_PATH}/lib"; \ + ./configure \ + --prefix=${NETCDF_INSTALL_PATH} \ + --enable-parallel-tests \ + --enable-shared \ + CC=${OMPI_INSTALL_PATH}/bin/mpicc; \ + make -j4; \ + make install; \ + cd .. -# ENV VTK_INSTALL_PATH=/opt/install_vtk_clang +ENV VTK_INSTALL_PATH=/opt/install_vtk_clang -# # Install vtk library with clang compiler -# RUN git clone https://github.com/Kitware/VTK.git; \ -# cd VTK; \ -# git checkout v${vtk_version}; \ -# # configure build with cmake -# rm -rf build && mkdir -p build && cd build ; \ -# cmake .. \ -# -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ -# -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ -# -DCMAKE_INSTALL_PREFIX=${VTK_INSTALL_PATH} \ -# -DBUILD_TESTING=OFF \ -# -DCMAKE_BUILD_TYPE=Release \ -# -DVTK_USE_MPI=ON \ -# -DVTK_GROUP_ENABLE_MPI=YES \ -# -DNetCDF_ROOT=${NETCDF_INSTALL_PATH} \ -# -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ -# -GNinja; \ -# # build and install vtk -# ninja -j4; \ -# ninja install -j4; \ -# # cleanup -# cd ../.. && rm -rf VTK \ No newline at end of file +# Install vtk library with clang compiler +RUN git clone https://github.com/Kitware/VTK.git; \ + cd VTK; \ + git checkout v${vtk_version}; \ +# configure build with cmake + rm -rf build && mkdir -p build && cd build ; \ + cmake .. \ + -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ + -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ + -DCMAKE_INSTALL_PREFIX=${VTK_INSTALL_PATH} \ + -DBUILD_TESTING=OFF \ + -DCMAKE_BUILD_TYPE=Release \ + -DVTK_USE_MPI=ON \ + -DVTK_GROUP_ENABLE_MPI=YES \ + -DNetCDF_ROOT=${NETCDF_INSTALL_PATH} \ + -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ + -GNinja; \ +# build and install vtk + ninja -j4; \ + ninja install -j4; \ +# cleanup + cd ../.. && rm -rf VTK \ No newline at end of file From b434792de30c322425cc36f93d8f4648d592c29a Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 14:34:12 +0100 Subject: [PATCH 38/49] Build container again, but only with OCC --- clang/ubuntu/Dockerfile | 108 ++++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 8421ead..978f098 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -77,7 +77,7 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ set -e; \ git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ cd OCCT; \ - # git checkout V7_8_0; \ + git checkout V7_5_1; \ # configure build with cmake rm -rf build && mkdir -p build && cd build ; \ cmake .. \ @@ -107,59 +107,59 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ # cleanup cd ../.. && rm -rf OCCT -# Install HDF5 -ENV HDF5_INSTALL_PATH=/opt/install_hdf5_clang -RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz; \ - tar xf hdf5-1.14.6.tar.gz; \ - cd hdf5-1.14.6; \ - ./configure \ - --prefix=${HDF5_INSTALL_PATH} \ - --enable-parallel \ - --enable-shared \ - --enable-hl \ - CC=${OMPI_INSTALL_PATH}/bin/mpicc \ - CXX=${OMPI_INSTALL_PATH}/bin/mpicxx; \ - make -j4 ; \ - make install; \ - cd .. +# # Install HDF5 +# ENV HDF5_INSTALL_PATH=/opt/install_hdf5_clang +# RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz; \ +# tar xf hdf5-1.14.6.tar.gz; \ +# cd hdf5-1.14.6; \ +# ./configure \ +# --prefix=${HDF5_INSTALL_PATH} \ +# --enable-parallel \ +# --enable-shared \ +# --enable-hl \ +# CC=${OMPI_INSTALL_PATH}/bin/mpicc \ +# CXX=${OMPI_INSTALL_PATH}/bin/mpicxx; \ +# make -j4 ; \ +# make install; \ +# cd .. -# Install netcdf-c -ENV NETCDF_INSTALL_PATH=/opt/install_netcdf_clang -RUN wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.2.tar.gz; \ - tar xf v4.9.2.tar.gz; \ - cd netcdf-c-4.9.2; \ - export CPPFLAGS="-I${HDF5_INSTALL_PATH}/include"; \ - export LDFLAGS="-L${HDF5_INSTALL_PATH}/lib"; \ - ./configure \ - --prefix=${NETCDF_INSTALL_PATH} \ - --enable-parallel-tests \ - --enable-shared \ - CC=${OMPI_INSTALL_PATH}/bin/mpicc; \ - make -j4; \ - make install; \ - cd .. +# # Install netcdf-c +# ENV NETCDF_INSTALL_PATH=/opt/install_netcdf_clang +# RUN wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.2.tar.gz; \ +# tar xf v4.9.2.tar.gz; \ +# cd netcdf-c-4.9.2; \ +# export CPPFLAGS="-I${HDF5_INSTALL_PATH}/include"; \ +# export LDFLAGS="-L${HDF5_INSTALL_PATH}/lib"; \ +# ./configure \ +# --prefix=${NETCDF_INSTALL_PATH} \ +# --enable-parallel-tests \ +# --enable-shared \ +# CC=${OMPI_INSTALL_PATH}/bin/mpicc; \ +# make -j4; \ +# make install; \ +# cd .. -ENV VTK_INSTALL_PATH=/opt/install_vtk_clang +# ENV VTK_INSTALL_PATH=/opt/install_vtk_clang -# Install vtk library with clang compiler -RUN git clone https://github.com/Kitware/VTK.git; \ - cd VTK; \ - git checkout v${vtk_version}; \ -# configure build with cmake - rm -rf build && mkdir -p build && cd build ; \ - cmake .. \ - -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ - -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ - -DCMAKE_INSTALL_PREFIX=${VTK_INSTALL_PATH} \ - -DBUILD_TESTING=OFF \ - -DCMAKE_BUILD_TYPE=Release \ - -DVTK_USE_MPI=ON \ - -DVTK_GROUP_ENABLE_MPI=YES \ - -DNetCDF_ROOT=${NETCDF_INSTALL_PATH} \ - -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ - -GNinja; \ -# build and install vtk - ninja -j4; \ - ninja install -j4; \ -# cleanup - cd ../.. && rm -rf VTK \ No newline at end of file +# # Install vtk library with clang compiler +# RUN git clone https://github.com/Kitware/VTK.git; \ +# cd VTK; \ +# git checkout v${vtk_version}; \ +# # configure build with cmake +# rm -rf build && mkdir -p build && cd build ; \ +# cmake .. \ +# -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ +# -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ +# -DCMAKE_INSTALL_PREFIX=${VTK_INSTALL_PATH} \ +# -DBUILD_TESTING=OFF \ +# -DCMAKE_BUILD_TYPE=Release \ +# -DVTK_USE_MPI=ON \ +# -DVTK_GROUP_ENABLE_MPI=YES \ +# -DNetCDF_ROOT=${NETCDF_INSTALL_PATH} \ +# -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ +# -GNinja; \ +# # build and install vtk +# ninja -j4; \ +# ninja install -j4; \ +# # cleanup +# cd ../.. && rm -rf VTK \ No newline at end of file From d9c37e862c6a9843a1ece75e923b84ce640d4bee Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 17:10:57 +0100 Subject: [PATCH 39/49] For debugging, try without TBB --- clang/ubuntu/Dockerfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 978f098..0dada45 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -65,10 +65,10 @@ RUN mkdir install_ompi_clang; \ make -j$(nproc); \ make install -RUN cd /usr/lib/x86_64-linux-gnu; \ - rm libtbb.so libtbbmalloc.so; \ - ln -s libtbb.so.12 libtbb.so; \ - ln -s libtbbmalloc.so.2 libtbbmalloc.so +# RUN cd /usr/lib/x86_64-linux-gnu; \ +# rm libtbb.so libtbbmalloc.so; \ +# ln -s libtbb.so.12 libtbb.so; \ +# ln -s libtbbmalloc.so.2 libtbbmalloc.so # Install OpenCASCADE @@ -97,7 +97,7 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ -D3RDPARTY_TBB_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ -D3RDPARTY_TBBMALLOC_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ -DBUILD_LIBRARY_TYPE=Shared \ - -DUSE_TBB=ON \ + -DUSE_TBB=OFF \ -DUSE_FREETYPE=ON \ -DUSE_OPENGL=ON \ -GNinja; \ From 199146d5f8736be6252654861e1e5d2e2e8abb48 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 17:20:55 +0100 Subject: [PATCH 40/49] Try with TBB again --- clang/ubuntu/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 0dada45..e916628 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -96,8 +96,10 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ -D3RDPARTY_TK_LIBRARY_DIR:PATH=IGNORE \ -D3RDPARTY_TBB_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ -D3RDPARTY_TBBMALLOC_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ + -DUSE_TBB=ON \ + -DTBB_INCLUDE_DIRS=/usr/include \ + -DTBB_LIBRARIES="/usr/lib/x86_64-linux-gnu/libtbb.so;/usr/lib/x86_64-linux-gnu/libtbbmalloc.so" -DBUILD_LIBRARY_TYPE=Shared \ - -DUSE_TBB=OFF \ -DUSE_FREETYPE=ON \ -DUSE_OPENGL=ON \ -GNinja; \ From 31ac1fee05f901390b3de845d78c86a461ef9751 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 17:31:56 +0100 Subject: [PATCH 41/49] Fix typo --- clang/ubuntu/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index e916628..1e3f5e3 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -98,7 +98,7 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ -D3RDPARTY_TBBMALLOC_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ -DUSE_TBB=ON \ -DTBB_INCLUDE_DIRS=/usr/include \ - -DTBB_LIBRARIES="/usr/lib/x86_64-linux-gnu/libtbb.so;/usr/lib/x86_64-linux-gnu/libtbbmalloc.so" + -DTBB_LIBRARIES="/usr/lib/x86_64-linux-gnu/libtbb.so;/usr/lib/x86_64-linux-gnu/libtbbmalloc.so" \ -DBUILD_LIBRARY_TYPE=Shared \ -DUSE_FREETYPE=ON \ -DUSE_OPENGL=ON \ From 1e0ac74f01e2d49dde58cadff017c25496e10052 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 07:43:01 +0100 Subject: [PATCH 42/49] Build without TBB again --- clang/ubuntu/Dockerfile | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 1e3f5e3..88fa68f 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -96,7 +96,7 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ -D3RDPARTY_TK_LIBRARY_DIR:PATH=IGNORE \ -D3RDPARTY_TBB_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ -D3RDPARTY_TBBMALLOC_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ - -DUSE_TBB=ON \ + -DUSE_TBB=OFF \ -DTBB_INCLUDE_DIRS=/usr/include \ -DTBB_LIBRARIES="/usr/lib/x86_64-linux-gnu/libtbb.so;/usr/lib/x86_64-linux-gnu/libtbbmalloc.so" \ -DBUILD_LIBRARY_TYPE=Shared \ @@ -111,9 +111,13 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ # # Install HDF5 # ENV HDF5_INSTALL_PATH=/opt/install_hdf5_clang -# RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz; \ -# tar xf hdf5-1.14.6.tar.gz; \ -# cd hdf5-1.14.6; \ +# # RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz; \ +# # tar xf hdf5-1.14.6.tar.gz; \ +# # cd hdf5-1.14.6; \ +# RUN wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.7/src/hdf5-1.10.7.tar.gz +# tar xf hdf5-1.10.7.tar.gz + + # ./configure \ # --prefix=${HDF5_INSTALL_PATH} \ # --enable-parallel \ From 96ed88b01b2de649cf684d261ba2332b72445ee0 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 07:54:11 +0100 Subject: [PATCH 43/49] Rearranged some paths --- clang/ubuntu/Dockerfile | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 88fa68f..ebeaccb 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -9,6 +9,8 @@ ARG vtk_library_version=9.1 ENV DEBIAN_FRONTEND=noninteractive ENV LIBRARY_PATH=/usr/local/lib ENV LD_LIBRARY_PATH=/usr/local/lib +ENV CUSTOM_CLANG_INSTALL=/custom_clang_install +ENV CUSTOM_CLANG_BUILD=/custom_clang_build ####################################################### # Install software requirements and build tools # @@ -52,12 +54,14 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ libtbb2 # Export openmpi path to later use it in the github workflow. -ENV OMPI_INSTALL_PATH=/opt/install_openmpi_clang +ENV OMPI_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/openmpi_clang ENV PATH="$OMPI_INSTALL_PATH/bin:$PATH" +RUN mkdir -p $CUSTOM_CLANG_BUILD && mkdir -p $CUSTOM_CLANG_INSTALL + # Install openmpi with clang compiler. # TODO: Make version an ARG as in vtk? -RUN mkdir install_ompi_clang; \ +RUN cd $CUSTOM_CLANG_BUILD; \ wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.gz; \ tar xf openmpi-4.1.6.tar.gz; \ cd openmpi-4.1.6; \ @@ -72,9 +76,10 @@ RUN mkdir install_ompi_clang; \ # Install OpenCASCADE -ENV OCCT_INSTALL_PATH=/opt/install_occt_clang +ENV OCCT_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/occt_clang RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ set -e; \ + cd $CUSTOM_CLANG_BUILD; \ git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ cd OCCT; \ git checkout V7_5_1; \ @@ -109,15 +114,14 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ # cleanup cd ../.. && rm -rf OCCT -# # Install HDF5 +# Install HDF5 # ENV HDF5_INSTALL_PATH=/opt/install_hdf5_clang # # RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz; \ # # tar xf hdf5-1.14.6.tar.gz; \ # # cd hdf5-1.14.6; \ -# RUN wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.7/src/hdf5-1.10.7.tar.gz -# tar xf hdf5-1.10.7.tar.gz - - +# RUN wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.7/src/hdf5-1.10.7.tar.gz; \ +# tar xf hdf5-1.10.7.tar.gz; \ +# cd hdf5-1.10.7; \ # ./configure \ # --prefix=${HDF5_INSTALL_PATH} \ # --enable-parallel \ From e0c83e81f03e1a2d5efa2ce68c4f06167e84d9ad Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 10:04:48 +0100 Subject: [PATCH 44/49] Try HDF5 and NETCDF in custom version --- clang/ubuntu/Dockerfile | 63 ++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index ebeaccb..a69f6cd 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -115,39 +115,44 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ cd ../.. && rm -rf OCCT # Install HDF5 -# ENV HDF5_INSTALL_PATH=/opt/install_hdf5_clang -# # RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz; \ -# # tar xf hdf5-1.14.6.tar.gz; \ -# # cd hdf5-1.14.6; \ -# RUN wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.7/src/hdf5-1.10.7.tar.gz; \ -# tar xf hdf5-1.10.7.tar.gz; \ -# cd hdf5-1.10.7; \ -# ./configure \ -# --prefix=${HDF5_INSTALL_PATH} \ -# --enable-parallel \ -# --enable-shared \ -# --enable-hl \ -# CC=${OMPI_INSTALL_PATH}/bin/mpicc \ -# CXX=${OMPI_INSTALL_PATH}/bin/mpicxx; \ -# make -j4 ; \ -# make install; \ -# cd .. +ENV HDF5_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/hdf5_clang +# RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz; \ +# tar xf hdf5-1.14.6.tar.gz; \ +# cd hdf5-1.14.6; \ +RUN cd $CUSTOM_CLANG_BUILD; \ + wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.7/src/hdf5-1.10.7.tar.gz; \ + tar xf hdf5-1.10.7.tar.gz; \ + cd hdf5-1.10.7; \ + ./configure \ + --prefix=${HDF5_INSTALL_PATH} \ + --enable-parallel \ + --enable-shared \ + --enable-hl \ + CC=${OMPI_INSTALL_PATH}/bin/mpicc \ + CXX=${OMPI_INSTALL_PATH}/bin/mpicxx; \ + make -j4 ; \ + make install; \ + cd .. -# # Install netcdf-c -# ENV NETCDF_INSTALL_PATH=/opt/install_netcdf_clang +# Install netcdf-c +ENV NETCDF_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/netcdf_clang # RUN wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.2.tar.gz; \ # tar xf v4.9.2.tar.gz; \ # cd netcdf-c-4.9.2; \ -# export CPPFLAGS="-I${HDF5_INSTALL_PATH}/include"; \ -# export LDFLAGS="-L${HDF5_INSTALL_PATH}/lib"; \ -# ./configure \ -# --prefix=${NETCDF_INSTALL_PATH} \ -# --enable-parallel-tests \ -# --enable-shared \ -# CC=${OMPI_INSTALL_PATH}/bin/mpicc; \ -# make -j4; \ -# make install; \ -# cd .. +RUN cd $CUSTOM_CLANG_BUILD; \ + wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.8.1.tar.gz -O netcdf-c-4.8.1.tar.gz; \ + tar xf netcdf-c-4.8.1.tar.gz; \ + cd netcdf-c-4.8.1; \ + export CPPFLAGS="-I${HDF5_INSTALL_PATH}/include"; \ + export LDFLAGS="-L${HDF5_INSTALL_PATH}/lib"; \ + ./configure \ + --prefix=${NETCDF_INSTALL_PATH} \ + --enable-parallel-tests \ + --enable-shared \ + CC=${OMPI_INSTALL_PATH}/bin/mpicc; \ + make -j4; \ + make install; \ + cd .. # ENV VTK_INSTALL_PATH=/opt/install_vtk_clang From da5d00cd4876045194f141475fc5e2cce7ed6e62 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 11:13:05 +0100 Subject: [PATCH 45/49] Major update --- clang/ubuntu/Dockerfile | 139 +++++++++++++++++++++++++--------------- 1 file changed, 86 insertions(+), 53 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index a69f6cd..15cc7cc 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -53,11 +53,13 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ libtbb-dev \ libtbb2 + +# Prepare folders once +RUN rm -rf $CUSTOM_CLANG_BUILD && mkdir -p $CUSTOM_CLANG_BUILD && \ + rm -rf $CUSTOM_CLANG_INSTALL && mkdir -p $CUSTOM_CLANG_INSTALL + # Export openmpi path to later use it in the github workflow. ENV OMPI_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/openmpi_clang -ENV PATH="$OMPI_INSTALL_PATH/bin:$PATH" - -RUN mkdir -p $CUSTOM_CLANG_BUILD && mkdir -p $CUSTOM_CLANG_INSTALL # Install openmpi with clang compiler. # TODO: Make version an ARG as in vtk? @@ -69,10 +71,11 @@ RUN cd $CUSTOM_CLANG_BUILD; \ make -j$(nproc); \ make install -# RUN cd /usr/lib/x86_64-linux-gnu; \ -# rm libtbb.so libtbbmalloc.so; \ -# ln -s libtbb.so.12 libtbb.so; \ -# ln -s libtbbmalloc.so.2 libtbbmalloc.so +# Add OpenMPI to paths and environment variables +ENV PATH="$OMPI_INSTALL_PATH/bin:$PATH" +ENV LIBRARY_PATH="$OMPI_INSTALL_PATH/lib:$LIBRARY_PATH" +ENV LD_LIBRARY_PATH="$OMPI_INSTALL_PATH/lib:$LD_LIBRARY_PATH" +ENV CPATH="$OMPI_INSTALL_PATH/include:$CPATH" # Install OpenCASCADE @@ -89,7 +92,6 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ -DCMAKE_INSTALL_PREFIX=${OCCT_INSTALL_PATH} \ - -DCMAKE_BUILD_TYPE=Release \ -DBUILD_DRAW=OFF \ -DUSE_TCL=OFF \ -DUSE_TK=OFF \ @@ -114,26 +116,40 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ # cleanup cd ../.. && rm -rf OCCT +# Add OpenCASCADE to paths and environment variables +ENV PATH="$OCCT_INSTALL_PATH/bin:$PATH" +ENV LIBRARY_PATH="$OCCT_INSTALL_PATH/lib:$LIBRARY_PATH" +ENV LD_LIBRARY_PATH="$OCCT_INSTALL_PATH/lib:$LD_LIBRARY_PATH" +ENV CPATH="$OCCT_INSTALL_PATH/include:$CPATH" + + # Install HDF5 ENV HDF5_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/hdf5_clang -# RUN wget https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz; \ -# tar xf hdf5-1.14.6.tar.gz; \ -# cd hdf5-1.14.6; \ RUN cd $CUSTOM_CLANG_BUILD; \ wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.7/src/hdf5-1.10.7.tar.gz; \ tar xf hdf5-1.10.7.tar.gz; \ cd hdf5-1.10.7; \ - ./configure \ - --prefix=${HDF5_INSTALL_PATH} \ - --enable-parallel \ - --enable-shared \ - --enable-hl \ - CC=${OMPI_INSTALL_PATH}/bin/mpicc \ - CXX=${OMPI_INSTALL_PATH}/bin/mpicxx; \ - make -j4 ; \ - make install; \ + rm -rf build && mkdir -p build && cd build; \ + cmake .. \ + -DCMAKE_INSTALL_PREFIX=${HDF5_INSTALL_PATH} \ + -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ + -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ + -DBUILD_SHARED_LIBS=ON \ + -DHDF5_ENABLE_Z_LIB_SUPPORT=ON \ + -DZLIB_INCLUDE_DIR=/usr/include \ + -DZLIB_LIBRARY=/usr/lib/x86_64-linux-gnu/libz.so; + -GNinja\ + ninja -j4 ; \ + ninja install; \ cd .. +# Add HDF5 to paths and environment variables +ENV PATH="$HDF5_INSTALL_PATH/bin:$PATH" +ENV LIBRARY_PATH="$HDF5_INSTALL_PATH/lib:$LIBRARY_PATH" +ENV LD_LIBRARY_PATH="$HDF5_INSTALL_PATH/lib:$LD_LIBRARY_PATH" +ENV CPATH="$HDF5_INSTALL_PATH/include:$CPATH" + + # Install netcdf-c ENV NETCDF_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/netcdf_clang # RUN wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.2.tar.gz; \ @@ -143,38 +159,55 @@ RUN cd $CUSTOM_CLANG_BUILD; \ wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.8.1.tar.gz -O netcdf-c-4.8.1.tar.gz; \ tar xf netcdf-c-4.8.1.tar.gz; \ cd netcdf-c-4.8.1; \ - export CPPFLAGS="-I${HDF5_INSTALL_PATH}/include"; \ - export LDFLAGS="-L${HDF5_INSTALL_PATH}/lib"; \ - ./configure \ - --prefix=${NETCDF_INSTALL_PATH} \ - --enable-parallel-tests \ - --enable-shared \ - CC=${OMPI_INSTALL_PATH}/bin/mpicc; \ - make -j4; \ - make install; \ + rm -rf build && mkdir -p build && cd build; \ + cmake .. \ + -DCMAKE_INSTALL_PREFIX=${NETCDF_INSTALL_PATH} \ + -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ + -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ + -DBUILD_SHARED_LIBS=ON \ + -DENABLE_TESTS=OFF \ + -GNinja; \ + ninja -j4; \ + ninja install; \ cd .. -# ENV VTK_INSTALL_PATH=/opt/install_vtk_clang - -# # Install vtk library with clang compiler -# RUN git clone https://github.com/Kitware/VTK.git; \ -# cd VTK; \ -# git checkout v${vtk_version}; \ -# # configure build with cmake -# rm -rf build && mkdir -p build && cd build ; \ -# cmake .. \ -# -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ -# -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ -# -DCMAKE_INSTALL_PREFIX=${VTK_INSTALL_PATH} \ -# -DBUILD_TESTING=OFF \ -# -DCMAKE_BUILD_TYPE=Release \ -# -DVTK_USE_MPI=ON \ -# -DVTK_GROUP_ENABLE_MPI=YES \ -# -DNetCDF_ROOT=${NETCDF_INSTALL_PATH} \ -# -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ -# -GNinja; \ -# # build and install vtk -# ninja -j4; \ -# ninja install -j4; \ -# # cleanup -# cd ../.. && rm -rf VTK \ No newline at end of file +# Add NetCDF to paths and environment variables +ENV PATH="$NETCDF_INSTALL_PATH/bin:$PATH" +ENV LIBRARY_PATH="$NETCDF_INSTALL_PATH/lib:$LIBRARY_PATH" +ENV LD_LIBRARY_PATH="$NETCDF_INSTALL_PATH/lib:$LD_LIBRARY_PATH" +ENV CPATH="$NETCDF_INSTALL_PATH/include:$CPATH" + +ENV VTK_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/vtk_clang + +# Install vtk library with clang compiler +RUN git clone https://github.com/Kitware/VTK.git; \ + cd VTK; \ + git checkout v${vtk_version}; \ +# configure build with cmake + rm -rf build && mkdir -p build && cd build ; \ + cmake .. \ + -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ + -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ + -DCMAKE_INSTALL_PREFIX=${VTK_INSTALL_PATH} \ + -DBUILD_TESTING=OFF \ + -DCMAKE_BUILD_TYPE=Release \ + -DVTK_USE_MPI=ON \ + -DVTK_GROUP_ENABLE_MPI=YES \ + -GNinja; \ +# build and install vtk + ninja -j4; \ + ninja install -j4; \ +# cleanup + cd ../.. && rm -rf VTK + +# Add NetCDF to paths and environment variables +ENV PATH="$VTK_INSTALL_PATH/bin:$PATH" +ENV LIBRARY_PATH="$VTK_INSTALL_PATH/lib:$LIBRARY_PATH" +ENV LD_LIBRARY_PATH="$VTK_INSTALL_PATH/lib:$LD_LIBRARY_PATH" +ENV CPATH="$VTK_INSTALL_PATH/include:$CPATH" + + +# BACKUP lines + # -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ + # -DNetCDF_ROOT=${NETCDF_INSTALL_PATH} \ + # -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ \ No newline at end of file From 17660f2ba08a7f40b6f50d0da7d5d328e70ead60 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 11:25:45 +0100 Subject: [PATCH 46/49] Try again --- clang/ubuntu/Dockerfile | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 15cc7cc..a063af4 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -80,9 +80,7 @@ ENV CPATH="$OMPI_INSTALL_PATH/include:$CPATH" # Install OpenCASCADE ENV OCCT_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/occt_clang -RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ - set -e; \ - cd $CUSTOM_CLANG_BUILD; \ +RUN cd $CUSTOM_CLANG_BUILD; \ git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ cd OCCT; \ git checkout V7_5_1; \ @@ -112,9 +110,7 @@ RUN ls -l /usr/lib/x86_64-linux-gnu/libtbb*; \ -GNinja; \ # build and install OpenCASCADE ninja -j4; \ - ninja install -j4; \ -# cleanup - cd ../.. && rm -rf OCCT + ninja install # Add OpenCASCADE to paths and environment variables ENV PATH="$OCCT_INSTALL_PATH/bin:$PATH" @@ -138,10 +134,9 @@ RUN cd $CUSTOM_CLANG_BUILD; \ -DHDF5_ENABLE_Z_LIB_SUPPORT=ON \ -DZLIB_INCLUDE_DIR=/usr/include \ -DZLIB_LIBRARY=/usr/lib/x86_64-linux-gnu/libz.so; - -GNinja\ + -GNinja; \ ninja -j4 ; \ - ninja install; \ - cd .. + ninja install # Add HDF5 to paths and environment variables ENV PATH="$HDF5_INSTALL_PATH/bin:$PATH" @@ -168,8 +163,7 @@ RUN cd $CUSTOM_CLANG_BUILD; \ -DENABLE_TESTS=OFF \ -GNinja; \ ninja -j4; \ - ninja install; \ - cd .. + ninja install # Add NetCDF to paths and environment variables ENV PATH="$NETCDF_INSTALL_PATH/bin:$PATH" @@ -180,7 +174,8 @@ ENV CPATH="$NETCDF_INSTALL_PATH/include:$CPATH" ENV VTK_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/vtk_clang # Install vtk library with clang compiler -RUN git clone https://github.com/Kitware/VTK.git; \ +RUN cd $CUSTOM_CLANG_BUILD; \ + git clone https://github.com/Kitware/VTK.git; \ cd VTK; \ git checkout v${vtk_version}; \ # configure build with cmake @@ -196,9 +191,7 @@ RUN git clone https://github.com/Kitware/VTK.git; \ -GNinja; \ # build and install vtk ninja -j4; \ - ninja install -j4; \ -# cleanup - cd ../.. && rm -rf VTK + ninja install -j4 # Add NetCDF to paths and environment variables ENV PATH="$VTK_INSTALL_PATH/bin:$PATH" @@ -206,6 +199,8 @@ ENV LIBRARY_PATH="$VTK_INSTALL_PATH/lib:$LIBRARY_PATH" ENV LD_LIBRARY_PATH="$VTK_INSTALL_PATH/lib:$LD_LIBRARY_PATH" ENV CPATH="$VTK_INSTALL_PATH/include:$CPATH" +# Clean up build directories +RUN rm -rf $CUSTOM_CLANG_BUILD # BACKUP lines # -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ From 4a4bb70766f3e3f7ba2468c9805714ee773e7cd4 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 11:28:05 +0100 Subject: [PATCH 47/49] Fix typo --- clang/ubuntu/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index a063af4..16d4c59 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -133,7 +133,7 @@ RUN cd $CUSTOM_CLANG_BUILD; \ -DBUILD_SHARED_LIBS=ON \ -DHDF5_ENABLE_Z_LIB_SUPPORT=ON \ -DZLIB_INCLUDE_DIR=/usr/include \ - -DZLIB_LIBRARY=/usr/lib/x86_64-linux-gnu/libz.so; + -DZLIB_LIBRARY=/usr/lib/x86_64-linux-gnu/libz.so \ -GNinja; \ ninja -j4 ; \ ninja install From 22aa932d676bad06e13f24dbd3d64b5e56396270 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 14:42:12 +0100 Subject: [PATCH 48/49] Build light version as clang dependencies --- clang/ubuntu/Dockerfile | 153 ++++++++-------------------------------- 1 file changed, 29 insertions(+), 124 deletions(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 16d4c59..855abed 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -3,15 +3,25 @@ LABEL org.opencontainers.image.authors="Thomas Spenke " LABEL Description="Ubuntu 22.04 with clang and openmpi setup to be uses with t8code" SHELL ["/bin/bash", "-c"] +# Set vtk version ARG vtk_version=9.1.0 ARG vtk_library_version=9.1 +# Set openmpi version +ARG ompi_version=4.1.6 +ARG ompi_library_version=4.1 + +# Set environment variables ENV DEBIAN_FRONTEND=noninteractive ENV LIBRARY_PATH=/usr/local/lib ENV LD_LIBRARY_PATH=/usr/local/lib ENV CUSTOM_CLANG_INSTALL=/custom_clang_install ENV CUSTOM_CLANG_BUILD=/custom_clang_build +# Set install paths for openmpi and vtk +ENV OMPI_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/openmpi_clang +ENV VTK_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/vtk_clang + ####################################################### # Install software requirements and build tools # ####################################################### @@ -32,41 +42,37 @@ RUN apt-get update -y && apt-get upgrade -y; \ git \ clang \ ca-certificates \ + autoconf automake libtool m4 \ + zlib1g-dev libcurl4-openssl-dev \ # Added for vtk library libgl1-mesa-dev libx11-dev libxmu-dev libxi-dev \ libxt-dev libxrender-dev libxrandr-dev \ libwayland-dev wayland-protocols \ libfontconfig1-dev libfreetype6-dev \ libxkbcommon-dev libdrm-dev \ -# Added for OpenCASCADE - libtbb-dev \ - libpng-dev libjpeg-dev libtiff-dev \ - libopenexr-dev \ -# Added for netcdf - autoconf automake libtool m4 \ - zlib1g-dev libcurl4-openssl-dev - -# Required for OpenCASCADE -RUN apt-get update && apt-get install -y --no-install-recommends \ - tcl-dev \ - tk-dev \ - libtbb-dev \ - libtbb2 - +# install opengl libs + xorg-dev \ + libglu1-mesa-dev \ + freeglut3-dev \ + libglew-dev \ + libglu1-mesa-dev \ + libgl1-mesa-dev \ +# install OpenCASCADE + libocct-foundation-dev \ + libocct-modeling-algorithms-dev\ + libocct-modeling-data-dev \ +# install NetCDF + libnetcdf-dev # Prepare folders once RUN rm -rf $CUSTOM_CLANG_BUILD && mkdir -p $CUSTOM_CLANG_BUILD && \ rm -rf $CUSTOM_CLANG_INSTALL && mkdir -p $CUSTOM_CLANG_INSTALL -# Export openmpi path to later use it in the github workflow. -ENV OMPI_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/openmpi_clang - # Install openmpi with clang compiler. -# TODO: Make version an ARG as in vtk? RUN cd $CUSTOM_CLANG_BUILD; \ - wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.gz; \ - tar xf openmpi-4.1.6.tar.gz; \ - cd openmpi-4.1.6; \ + wget https://download.open-mpi.org/release/open-mpi/v${ompi_library_version}/openmpi-${ompi_version}.tar.gz; \ + tar xf openmpi-${ompi_version}.tar.gz; \ + cd openmpi-${ompi_version}; \ CC=clang CXX=clang++ ./configure --prefix=$OMPI_INSTALL_PATH; \ make -j$(nproc); \ make install @@ -77,102 +83,6 @@ ENV LIBRARY_PATH="$OMPI_INSTALL_PATH/lib:$LIBRARY_PATH" ENV LD_LIBRARY_PATH="$OMPI_INSTALL_PATH/lib:$LD_LIBRARY_PATH" ENV CPATH="$OMPI_INSTALL_PATH/include:$CPATH" - -# Install OpenCASCADE -ENV OCCT_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/occt_clang -RUN cd $CUSTOM_CLANG_BUILD; \ - git clone https://github.com/Open-Cascade-SAS/OCCT.git; \ - cd OCCT; \ - git checkout V7_5_1; \ - # configure build with cmake - rm -rf build && mkdir -p build && cd build ; \ - cmake .. \ - -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ - -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ - -DCMAKE_INSTALL_PREFIX=${OCCT_INSTALL_PATH} \ - -DBUILD_DRAW=OFF \ - -DUSE_TCL=OFF \ - -DUSE_TK=OFF \ - -D3RDPARTY_TCL_INCLUDE_DIR:PATH=IGNORE \ - -D3RDPARTY_TCL_LIBRARY:FILEPATH=IGNORE \ - -D3RDPARTY_TCL_LIBRARY_DIR:PATH=IGNORE \ - -D3RDPARTY_TK_INCLUDE_DIR:PATH=IGNORE \ - -D3RDPARTY_TK_LIBRARY:FILEPATH=IGNORE \ - -D3RDPARTY_TK_LIBRARY_DIR:PATH=IGNORE \ - -D3RDPARTY_TBB_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ - -D3RDPARTY_TBBMALLOC_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ - -DUSE_TBB=OFF \ - -DTBB_INCLUDE_DIRS=/usr/include \ - -DTBB_LIBRARIES="/usr/lib/x86_64-linux-gnu/libtbb.so;/usr/lib/x86_64-linux-gnu/libtbbmalloc.so" \ - -DBUILD_LIBRARY_TYPE=Shared \ - -DUSE_FREETYPE=ON \ - -DUSE_OPENGL=ON \ - -GNinja; \ -# build and install OpenCASCADE - ninja -j4; \ - ninja install - -# Add OpenCASCADE to paths and environment variables -ENV PATH="$OCCT_INSTALL_PATH/bin:$PATH" -ENV LIBRARY_PATH="$OCCT_INSTALL_PATH/lib:$LIBRARY_PATH" -ENV LD_LIBRARY_PATH="$OCCT_INSTALL_PATH/lib:$LD_LIBRARY_PATH" -ENV CPATH="$OCCT_INSTALL_PATH/include:$CPATH" - - -# Install HDF5 -ENV HDF5_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/hdf5_clang -RUN cd $CUSTOM_CLANG_BUILD; \ - wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.7/src/hdf5-1.10.7.tar.gz; \ - tar xf hdf5-1.10.7.tar.gz; \ - cd hdf5-1.10.7; \ - rm -rf build && mkdir -p build && cd build; \ - cmake .. \ - -DCMAKE_INSTALL_PREFIX=${HDF5_INSTALL_PATH} \ - -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ - -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ - -DBUILD_SHARED_LIBS=ON \ - -DHDF5_ENABLE_Z_LIB_SUPPORT=ON \ - -DZLIB_INCLUDE_DIR=/usr/include \ - -DZLIB_LIBRARY=/usr/lib/x86_64-linux-gnu/libz.so \ - -GNinja; \ - ninja -j4 ; \ - ninja install - -# Add HDF5 to paths and environment variables -ENV PATH="$HDF5_INSTALL_PATH/bin:$PATH" -ENV LIBRARY_PATH="$HDF5_INSTALL_PATH/lib:$LIBRARY_PATH" -ENV LD_LIBRARY_PATH="$HDF5_INSTALL_PATH/lib:$LD_LIBRARY_PATH" -ENV CPATH="$HDF5_INSTALL_PATH/include:$CPATH" - - -# Install netcdf-c -ENV NETCDF_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/netcdf_clang -# RUN wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.2.tar.gz; \ -# tar xf v4.9.2.tar.gz; \ -# cd netcdf-c-4.9.2; \ -RUN cd $CUSTOM_CLANG_BUILD; \ - wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.8.1.tar.gz -O netcdf-c-4.8.1.tar.gz; \ - tar xf netcdf-c-4.8.1.tar.gz; \ - cd netcdf-c-4.8.1; \ - rm -rf build && mkdir -p build && cd build; \ - cmake .. \ - -DCMAKE_INSTALL_PREFIX=${NETCDF_INSTALL_PATH} \ - -DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc \ - -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx \ - -DBUILD_SHARED_LIBS=ON \ - -DENABLE_TESTS=OFF \ - -GNinja; \ - ninja -j4; \ - ninja install - -# Add NetCDF to paths and environment variables -ENV PATH="$NETCDF_INSTALL_PATH/bin:$PATH" -ENV LIBRARY_PATH="$NETCDF_INSTALL_PATH/lib:$LIBRARY_PATH" -ENV LD_LIBRARY_PATH="$NETCDF_INSTALL_PATH/lib:$LD_LIBRARY_PATH" -ENV CPATH="$NETCDF_INSTALL_PATH/include:$CPATH" - -ENV VTK_INSTALL_PATH=$CUSTOM_CLANG_INSTALL/vtk_clang - # Install vtk library with clang compiler RUN cd $CUSTOM_CLANG_BUILD; \ git clone https://github.com/Kitware/VTK.git; \ @@ -200,9 +110,4 @@ ENV LD_LIBRARY_PATH="$VTK_INSTALL_PATH/lib:$LD_LIBRARY_PATH" ENV CPATH="$VTK_INSTALL_PATH/include:$CPATH" # Clean up build directories -RUN rm -rf $CUSTOM_CLANG_BUILD - -# BACKUP lines - # -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ - # -DNetCDF_ROOT=${NETCDF_INSTALL_PATH} \ - # -DHDF5_ROOT=${HDF5_INSTALL_PATH} \ \ No newline at end of file +RUN rm -rf $CUSTOM_CLANG_BUILD \ No newline at end of file From a76814f5c8b5d83f386322efe15602c05fc6cc73 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 16:28:47 +0100 Subject: [PATCH 49/49] Build openmpi with gfortran (in addition to Clang) --- clang/ubuntu/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clang/ubuntu/Dockerfile b/clang/ubuntu/Dockerfile index 855abed..6423e59 100644 --- a/clang/ubuntu/Dockerfile +++ b/clang/ubuntu/Dockerfile @@ -41,6 +41,7 @@ RUN apt-get update -y && apt-get upgrade -y; \ pkg-config \ git \ clang \ + gfortran \ ca-certificates \ autoconf automake libtool m4 \ zlib1g-dev libcurl4-openssl-dev \ @@ -73,7 +74,7 @@ RUN cd $CUSTOM_CLANG_BUILD; \ wget https://download.open-mpi.org/release/open-mpi/v${ompi_library_version}/openmpi-${ompi_version}.tar.gz; \ tar xf openmpi-${ompi_version}.tar.gz; \ cd openmpi-${ompi_version}; \ - CC=clang CXX=clang++ ./configure --prefix=$OMPI_INSTALL_PATH; \ + CC=clang CXX=clang++ FC=gfortran ./configure --prefix=$OMPI_INSTALL_PATH; \ make -j$(nproc); \ make install