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:
commit
6ace9562e7
@ -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
|
||||
|
44
.gitlab/ci/docker/fedora36/install_iwyu.sh
Executable file
44
.gitlab/ci/docker/fedora36/install_iwyu.sh
Executable 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 .
|
@ -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"
|
||||
|
Loading…
Reference in New Issue
Block a user