Skip to content

Commit d16b8df

Browse files
authored
chore(deps): update mull to v0.25.0
Since this version the Mull project publishes arm64 binaries for Ubuntu as well. So switch to install via apt.
1 parent d247fb2 commit d16b8df

File tree

2 files changed

+11
-12
lines changed

2 files changed

+11
-12
lines changed

.devcontainer/cpp/Dockerfile

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ ARG CCACHE_VERSION=4.10.1
55
ARG CLANG_VERSION=18
66
ARG CPM_VERSION=0.40.2
77
ARG DOCKER_VERSION=27.3.1
8-
ARG MULL_VERSION=0.24.0
98
ARG INCLUDE_WHAT_YOU_USE_VERSION=0.22
109
ARG XWIN_VERSION=0.6.5
1110

@@ -37,12 +36,14 @@ ENV CMAKE_GENERATOR="Ninja"
3736
ENV CMAKE_EXPORT_COMPILE_COMMANDS="On"
3837
ENV CCACHE_DIR=/root/.ccache
3938

40-
# Install clang toolchain
39+
# Install clang toolchain and mull mutation testing framework
4140
COPY .devcontainer/cpp/apt-requirements-clang.json /tmp/apt-requirements-clang.json
4241
# hadolint ignore=SC1091
4342
RUN wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor -o /usr/share/keyrings/llvm-snapshot-keyring.gpg \
43+
&& wget -qO - https://dl.cloudsmith.io/public/mull-project/mull-stable/gpg.41DB35380DE6BD6F.key | gpg --dearmor -o /usr/share/keyrings/mull-project-mull-stable-archive-keyring.gpg \
4444
&& UBUNTU_CODENAME=$(. /etc/os-release; echo "${UBUNTU_CODENAME/*, /}") \
4545
&& echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot-keyring.gpg] http://apt.llvm.org/${UBUNTU_CODENAME}/ llvm-toolchain-${UBUNTU_CODENAME}-${CLANG_VERSION} main" | tee /etc/apt/sources.list.d/llvm.list > /dev/null \
46+
&& echo "deb [signed-by=/usr/share/keyrings/mull-project-mull-stable-archive-keyring.gpg] https://dl.cloudsmith.io/public/mull-project/mull-stable/deb/ubuntu ${UBUNTU_CODENAME} main" | tee /etc/apt/sources.list.d/mull-project-mull-stable.list > /dev/null \
4647
&& echo -e 'Package: *\nPin: origin "apt.llvm.org"\nPin-Priority: 1000' > /etc/apt/preferences \
4748
&& apt-get update \
4849
&& jq -r 'to_entries | .[] | .key + "=" + .value' /tmp/apt-requirements-clang.json | xargs apt-get install -y --no-install-recommends \
@@ -71,25 +72,21 @@ RUN batstmp="$(mktemp -d /tmp/bats-core-${BATS_VERSION}.XXXX)" \
7172
# Install xwin
7273
RUN wget -qO - "https://github.com/Jake-Shadle/xwin/releases/download/${XWIN_VERSION}/xwin-${XWIN_VERSION}-$(uname -m)-unknown-linux-musl.tar.gz" | tar -xzv -C /usr/local/bin --strip-components=1 "xwin-${XWIN_VERSION}-$(uname -m)-unknown-linux-musl/xwin"
7374

74-
# Compile and install additional clang tools; often necessary as a binary arm64 build are lacking, or packages are out-of-date
75+
# Compile and install additional clang tools; often necessary as binary arm64 builds are lacking, or packages are out-of-date
7576
# Install ccache from source for a recent version
7677
RUN wget -qO - https://github.com/ccache/ccache/archive/refs/tags/v${CCACHE_VERSION}.tar.gz | tar xz -C /tmp \
7778
&& CC=clang CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTING=Off -DENABLE_DOCUMENTATION=Off -S /tmp/ccache-${CCACHE_VERSION} -B /tmp/ccache-${CCACHE_VERSION}/build \
7879
&& cmake --build /tmp/ccache-${CCACHE_VERSION}/build --target install \
7980
&& rm -rf /tmp/ccache-${CCACHE_VERSION}
8081

81-
# Install include-what-you-use (iwyu) and Mull from source
82+
# Install include-what-you-use (iwyu) from source
8283
# hadolint ignore=DL3008
8384
RUN --mount=type=cache,target=/root/.ccache,sharing=locked \
84-
apt-get update && apt-get install -y --no-install-recommends libclang-${CLANG_VERSION}-dev llvm-${CLANG_VERSION}-dev libsqlite3-dev \
85+
apt-get update && apt-get install -y --no-install-recommends libclang-${CLANG_VERSION}-dev llvm-${CLANG_VERSION}-dev \
8586
&& wget -qO - https://github.com/include-what-you-use/include-what-you-use/archive/refs/tags/${INCLUDE_WHAT_YOU_USE_VERSION}.tar.gz | tar xz -C /tmp \
8687
&& CC=clang CXX=clang++ cmake -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -S /tmp/include-what-you-use-${INCLUDE_WHAT_YOU_USE_VERSION} -B /tmp/include-what-you-use-${INCLUDE_WHAT_YOU_USE_VERSION}/build \
8788
&& cmake --build /tmp/include-what-you-use-${INCLUDE_WHAT_YOU_USE_VERSION}/build --target install \
8889
&& rm -rf /tmp/include-what-you-use-${INCLUDE_WHAT_YOU_USE_VERSION} \
89-
&& git -C /tmp clone --recurse-submodules -b ${MULL_VERSION} https://github.com/mull-project/mull.git \
90-
&& CC=clang CXX=clang++ cmake -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -S /tmp/mull -B /tmp/mull/build \
91-
&& cmake --build /tmp/mull/build --target install \
92-
&& rm -rf /tmp/mull \
9390
&& apt-get purge -y libclang-${CLANG_VERSION}-dev llvm-${CLANG_VERSION}-dev libsqlite3-dev \
9491
&& apt-get autoremove -y \
9592
&& apt-get clean \
@@ -101,8 +98,9 @@ RUN update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-14 20 \
10198
&& update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-14 20 \
10299
&& update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-14 10 \
103100
&& update-alternatives --install /usr/bin/iwyu iwyu /usr/local/bin/include-what-you-use 10 \
104-
&& update-alternatives --install /usr/bin/mull-runner mull-runner /usr/local/bin/mull-runner-${CLANG_VERSION} 10 \
105-
&& update-alternatives --install /usr/lib/mull-ir-frontend mull-ir-frontend /usr/local/lib/mull-ir-frontend-${CLANG_VERSION} 10 \
101+
&& update-alternatives --install /usr/bin/mull-runner mull-runner /usr/bin/mull-runner-${CLANG_VERSION} 10 \
102+
&& update-alternatives --install /usr/bin/mull-reporter mull-reporter /usr/bin/mull-reporter-${CLANG_VERSION} 10 \
103+
&& update-alternatives --install /usr/lib/mull-ir-frontend mull-ir-frontend /usr/lib/mull-ir-frontend-${CLANG_VERSION} 10 \
106104
&& update-alternatives --install /usr/bin/python python /usr/bin/python3 10 \
107105
&& cp /etc/skel/.bashrc /root/.bashrc
108106

.devcontainer/cpp/apt-requirements-clang.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@
66
"clang-tools-18": "1:18.1.8~++20240731025043+3b5b5c1ec4a3-1~exp1~20240731145144.92",
77
"libclang-rt-18-dev": "1:18.1.8~++20240731025043+3b5b5c1ec4a3-1~exp1~20240731145144.92",
88
"lld-18": "1:18.1.8~++20240731025043+3b5b5c1ec4a3-1~exp1~20240731145144.92",
9-
"llvm-18": "1:18.1.8~++20240731025043+3b5b5c1ec4a3-1~exp1~20240731145144.92"
9+
"llvm-18": "1:18.1.8~++20240731025043+3b5b5c1ec4a3-1~exp1~20240731145144.92",
10+
"mull-18": "0.25.0"
1011
}

0 commit comments

Comments
 (0)