diff --git a/src/grpp/grpp_specfunc_fermi_sk.c b/src/grpp/grpp_specfunc_fermi_sk.c index 1355db11a4..fef0989816 100644 --- a/src/grpp/grpp_specfunc_fermi_sk.c +++ b/src/grpp/grpp_specfunc_fermi_sk.c @@ -127,6 +127,9 @@ double libgrpp_specfunc_fermi_sk(int k, double x) { // return sum; // } +// To format the rest of this file clang-format would require 1.4 GB of memory. +// +// clang-format off static const double specfunc_fermi_sk_table[2001][10] = { // x = -10.0000 {-4.5391685990113197e-05, -4.5395807735951667e-05, -4.5397868702434395e-05, diff --git a/tools/docker/Dockerfile.test_precommit b/tools/docker/Dockerfile.test_precommit index 255d473e9d..b7581f467b 100644 --- a/tools/docker/Dockerfile.test_precommit +++ b/tools/docker/Dockerfile.test_precommit @@ -9,7 +9,7 @@ FROM ubuntu:24.04 WORKDIR /opt/cp2k-precommit COPY ./tools/precommit/ /opt/cp2k-precommit/ RUN ./install_requirements.sh -ENV PATH="/opt/venv/bin:$PATH" +ENV PATH="/opt/venv/bin:/opt/cp2k-precommit:$PATH" # Install sources. WORKDIR /opt/cp2k diff --git a/tools/docker/generate_dockerfiles.py b/tools/docker/generate_dockerfiles.py index ed3704f411..2ed94fd7ed 100755 --- a/tools/docker/generate_dockerfiles.py +++ b/tools/docker/generate_dockerfiles.py @@ -290,7 +290,7 @@ FROM ubuntu:24.04 WORKDIR /opt/cp2k-precommit COPY ./tools/precommit/ /opt/cp2k-precommit/ RUN ./install_requirements.sh -ENV PATH="/opt/venv/bin:$PATH" +ENV PATH="/opt/venv/bin:/opt/cp2k-precommit:$PATH" # Install sources. WORKDIR /opt/cp2k diff --git a/tools/precommit/Dockerfile b/tools/precommit/Dockerfile index 46f1e35989..f886074270 100644 --- a/tools/precommit/Dockerfile +++ b/tools/precommit/Dockerfile @@ -5,7 +5,7 @@ FROM ubuntu:24.04 WORKDIR /opt/cp2k-precommit COPY . /opt/cp2k-precommit/ RUN ./install_requirements.sh -ENV PATH="/opt/venv/bin:$PATH" +ENV PATH="/opt/venv/bin:/opt/cp2k-precommit:$PATH" ARG REVISION ENV REVISION=${REVISION} diff --git a/tools/precommit/clang_format_wrapper.sh b/tools/precommit/clang_format_wrapper.sh new file mode 100755 index 0000000000..f8f9b3cdd3 --- /dev/null +++ b/tools/precommit/clang_format_wrapper.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# author: Ole Schuett + +if (($# != 1)); then + echo "Usage: clang_format_wrapper.sh " + exit 1 +fi + +# For some files the clang-format requires too much memory. As a work-around we +# use the "clang-format off" marker to disable formatting. To actually reduce +# the memory usage this script hides the offending sections from clang-format. + +# Look for "clang-format off" markers to split the file into sections. +if csplit --quiet --prefix="section" "$1" "/clang-format off/"; then + # Format only the first section, ie. the one before "clang-format off". + clang-format --style=llvm -i section00 + # Join all sections back together. + cat section* > "$1" + # Remove intermediary files. + rm section* +else + # No markers found, just call clang-format directly. + clang-format --style=llvm -i "$1" +fi + +#EOF diff --git a/tools/precommit/precommit_server.py b/tools/precommit/precommit_server.py old mode 100755 new mode 100644 index 09f436a203..7bc72c10ec --- a/tools/precommit/precommit_server.py +++ b/tools/precommit/precommit_server.py @@ -51,7 +51,7 @@ def mdformat(): # ====================================================================================== @app.route("/clangformat", methods=["POST"]) def clangformat(): - return run_tool(["clang-format", "--style=llvm", "-i"]) + return run_tool(["clang_format_wrapper.sh"]) # ======================================================================================