diff --git a/.gitlab/ci/clang-tidy-cache.sh b/.gitlab/ci/clang-tidy-cache.sh new file mode 100755 index 0000000000000000000000000000000000000000..0aea1d66a5379058edd2fb5d0f7e302d9e90bf27 --- /dev/null +++ b/.gitlab/ci/clang-tidy-cache.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +# Skip for non-tidy builds. +if ! echo "$CMAKE_CONFIGURATION" | grep -q -e 'tidy'; then + exit 0 +fi + +readonly version="0.4.0-kitware-ci-20220709" + +case "$( uname -s )-$(uname -m)" in + Linux-x86_64) + shatool="sha256sum" + sha256sum="49c2540695da9834895897633c8323d5685df88f32b71da1ac373fff9426a063" + platform="linux-amd64" + ;; + *) + echo "Unrecognized platform $( uname -s )-$( uname -m )" + exit 1 + ;; +esac +readonly shatool +readonly sha256sum +readonly platform + +readonly filename="clang-tidy-cache-$version-$platform" + +readonly url="https://gitlab.kitware.com/api/v4/projects/6955/packages/generic/clang-tidy-cache/v$version" + +cd .gitlab + +echo "$sha256sum $filename" > clang-tidy-cache.sha256sum +curl -OL "$url/$filename" +$shatool --check clang-tidy-cache.sha256sum +mv "$filename" clang-tidy-cache +chmod +x clang-tidy-cache diff --git a/.gitlab/ci/configure_fedora41_tidy.cmake b/.gitlab/ci/configure_fedora41_tidy.cmake index 951da59f61639b07565b4af967b3b6a759bfdf0e..f2776f2cacd174ba12892cd63739525d204b69fb 100644 --- a/.gitlab/ci/configure_fedora41_tidy.cmake +++ b/.gitlab/ci/configure_fedora41_tidy.cmake @@ -1,4 +1,5 @@ -set(CMAKE_C_CLANG_TIDY "/usr/bin/clang-tidy" "--header-filter=$ENV{CI_PROJECT_DIR}" CACHE STRING "") -set(CMAKE_CXX_CLANG_TIDY "/usr/bin/clang-tidy" "--header-filter=$ENV{CI_PROJECT_DIR}" CACHE STRING "") +set(CMAKE_C_CLANG_TIDY "clang-tidy-cache" "--header-filter=$ENV{CI_PROJECT_DIR}" CACHE STRING "") +set(CMAKE_CXX_CLANG_TIDY "clang-tidy-cache" "--header-filter=$ENV{CI_PROJECT_DIR}" CACHE STRING "") +set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "") include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora41.cmake") diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml index 5ce89a1b717f1296a2448d0614eed518771e4c10..f990fd6e3086ec58d6e9d717493ee489cca00c2a 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml @@ -117,6 +117,7 @@ script: - *before_script_linux + - .gitlab/ci/clang-tidy-cache.sh - .gitlab/ci/sccache.sh - sccache --start-server - sccache --show-stats