Merge topic 'fedora-iwyu'

c239e7c259 ci: add include-what-you-use to Fedora base image

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7744
This commit is contained in:
Brad King 2022-10-05 13:21:50 +00:00 committed by Kitware Robot
commit 6ace9562e7
3 changed files with 54 additions and 1 deletions

View File

@ -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

View File

@ -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 .

View File

@ -69,7 +69,7 @@
### Fedora
.fedora36:
image: "kitware/cmake:ci-fedora36-x86_64-2022-08-31"
image: "kitware/cmake:ci-fedora36-x86_64-2022-10-04"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci/long file name for testing purposes"