48 lines
1.2 KiB
Docker
48 lines
1.2 KiB
Docker
FROM docker.io/library/ubuntu:22.04 as base
|
|
ENV LLVM_SYSROOT=/opt/llvm/
|
|
|
|
FROM base as toolchain
|
|
ENV LLVM_MAJOR=17
|
|
ENV LLVM_VERSION=${LLVM_MAJOR}.0.6
|
|
ENV LLVM_DIRNAME=clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-22.04
|
|
ENV LLVM_FILENAME=${LLVM_DIRNAME}.tar.xz
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y \
|
|
curl \
|
|
xz-utils
|
|
|
|
RUN mkdir -p $LLVM_SYSROOT/bin/ $LLVM_SYSROOT/lib/
|
|
|
|
RUN curl -O -L https://github.com/llvm/llvm-project/releases/download/llvmorg-$LLVM_VERSION/$LLVM_FILENAME
|
|
|
|
RUN tar -C $LLVM_SYSROOT --strip-components=1 -xJf $LLVM_FILENAME \
|
|
$LLVM_DIRNAME/bin/clang \
|
|
$LLVM_DIRNAME/bin/clang++ \
|
|
$LLVM_DIRNAME/bin/clang-cl \
|
|
$LLVM_DIRNAME/bin/clang-$LLVM_MAJOR \
|
|
$LLVM_DIRNAME/bin/lld \
|
|
$LLVM_DIRNAME/bin/ld.lld \
|
|
$LLVM_DIRNAME/lib/clang/
|
|
|
|
|
|
FROM base
|
|
|
|
COPY --from=toolchain $LLVM_SYSROOT $LLVM_SYSROOT
|
|
|
|
# Need to install curl for hendrikmuhs/ccache-action
|
|
# Need nodejs for some of the GitHub actions.
|
|
# Need perl-modules for clang analyzer tests.
|
|
RUN apt-get update && \
|
|
apt-get install -y \
|
|
binutils \
|
|
cmake \
|
|
curl \
|
|
libstdc++-11-dev \
|
|
ninja-build \
|
|
nodejs \
|
|
perl-modules \
|
|
python3-psutil
|
|
|
|
ENV LLVM_SYSROOT=$LLVM_SYSROOT
|
|
ENV PATH=${LLVM_SYSROOT}/bin:${PATH}
|