diff options
author | Kyle Edwards <kyle.edwards@kitware.com> | 2022-10-04 11:17:36 -0400 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-10-04 13:30:52 -0400 |
commit | c239e7c259a2af4987a4f754cee228f1f4bdcc97 (patch) | |
tree | 62f13b93f8c75c836995c784b75cc3809fb4253b /.gitlab/ci | |
parent | 5fec2ea0784cb299f2001af3d6cfce6c7dcce836 (diff) | |
download | cmake-c239e7c259a2af4987a4f754cee228f1f4bdcc97.tar.gz |
ci: add include-what-you-use to Fedora base image
Diffstat (limited to '.gitlab/ci')
-rw-r--r-- | .gitlab/ci/docker/fedora36/Dockerfile | 9 | ||||
-rwxr-xr-x | .gitlab/ci/docker/fedora36/install_iwyu.sh | 44 |
2 files changed, 53 insertions, 0 deletions
diff --git a/.gitlab/ci/docker/fedora36/Dockerfile b/.gitlab/ci/docker/fedora36/Dockerfile index 299d48a175..ea42561bcd 100644 --- a/.gitlab/ci/docker/fedora36/Dockerfile +++ b/.gitlab/ci/docker/fedora36/Dockerfile @@ -10,6 +10,12 @@ MAINTAINER Kyle Edwards <kyle.edwards@kitware.com> COPY install_clang_tidy_headers.sh /root/install_clang_tidy_headers.sh RUN sh /root/install_clang_tidy_headers.sh +FROM fedora:36 AS iwyu +MAINTAINER Kyle Edwards <kyle.edwards@kitware.com> + +COPY install_iwyu.sh /root/install_iwyu.sh +RUN sh /root/install_iwyu.sh + FROM fedora:36 MAINTAINER Ben Boeckel <ben.boeckel@kitware.com> @@ -22,3 +28,6 @@ RUN tar -C /usr/local -xf /root/rvm.tar \ COPY --from=clang-tidy-headers /root/clang-tidy-headers.tar /root/clang-tidy-headers.tar RUN tar -C /usr/include -xf /root/clang-tidy-headers.tar \ && rm /root/clang-tidy-headers.tar +COPY --from=iwyu /root/iwyu.tar /root/iwyu.tar +RUN tar -C / -xf /root/iwyu.tar \ + && rm /root/iwyu.tar diff --git a/.gitlab/ci/docker/fedora36/install_iwyu.sh b/.gitlab/ci/docker/fedora36/install_iwyu.sh new file mode 100755 index 0000000000..714bcc05c7 --- /dev/null +++ b/.gitlab/ci/docker/fedora36/install_iwyu.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +set -e + +# Install development tools. +dnf install --setopt=install_weak_deps=False -y \ + clang-devel \ + llvm-devel \ + zlib-devel \ + g++ \ + cmake \ + ninja-build \ + git + +cd /root +git clone "https://github.com/include-what-you-use/include-what-you-use.git" +cd include-what-you-use +readonly llvm_full_version="$( clang --version | head -n1 | cut -d' ' -f3 )" +readonly llvm_version="$( echo "$llvm_full_version" | cut -d. -f-1 )" +git checkout "clang_$llvm_version" +git apply <<EOF +diff --git a/iwyu_driver.cc b/iwyu_driver.cc +index 42fea35..fbb77a9 100644 +--- a/iwyu_driver.cc ++++ b/iwyu_driver.cc +@@ -167,6 +167,7 @@ CompilerInstance* CreateCompilerInstance(int argc, const char **argv) { + DiagnosticsEngine diagnostics(diagnostic_id, &*diagnostic_options, + diagnostic_client); + Driver driver(path, getDefaultTargetTriple(), diagnostics); ++ driver.ResourceDir = "/usr/lib64/clang/$llvm_full_version"; + driver.setTitle("include what you use"); + + // Expand out any response files passed on the command line +EOF +mkdir build +cd build + +cmake -GNinja \ + -DCMAKE_BUILD_TYPE=Release \ + "-DCMAKE_INSTALL_PREFIX=/usr/local/lib64/llvm-$llvm_version" \ + .. +ninja +DESTDIR=/root/iwyu-destdir ninja install +tar -C /root/iwyu-destdir -cf /root/iwyu.tar . |