Skip to content

Commit 9f81921

Browse files
committed
Add a dockerfile for testing installation with a system clang distribution
1 parent a1e0579 commit 9f81921

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

Dockerfile.system-clang

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
FROM ubuntu:22.04
2+
3+
RUN apt-get update -qq && \
4+
DEBIAN_FRONTEND="noninteractive" apt-get install -qqy --no-install-recommends \
5+
git wget bzip2 file unzip libtool pkg-config cmake build-essential \
6+
automake yasm gettext autopoint vim-tiny python3 python3-distutils \
7+
ninja-build ca-certificates curl less zip && \
8+
apt-get clean -y && \
9+
rm -rf /var/lib/apt/lists/*
10+
11+
# Separate step for system-clang; the RUN line above is similar to other dockerfiles.
12+
RUN apt-get update -qq && \
13+
apt-get install -qqy clang-15 lld-15 llvm-15 && \
14+
apt-get clean -y && \
15+
rm -rf /var/lib/apt/lists/*
16+
17+
18+
RUN git config --global user.name "LLVM MinGW" && \
19+
git config --global user.email root@localhost
20+
21+
WORKDIR /build
22+
23+
ENV TOOLCHAIN_PREFIX=/opt/llvm-mingw
24+
25+
ARG TOOLCHAIN_ARCHS="i686 x86_64 armv7 aarch64"
26+
27+
ARG DEFAULT_CRT=ucrt
28+
29+
ARG CFGUARD_ARGS=--enable-cfguard
30+
31+
COPY build-all.sh build-llvm.sh install-wrappers.sh build-mingw-w64.sh build-mingw-w64-tools.sh build-compiler-rt.sh build-libcxx.sh build-mingw-w64-libraries.sh build-openmp.sh ./
32+
COPY wrappers/*.sh wrappers/*.c wrappers/*.h ./wrappers/
33+
# Libcxx version 17 requires Clang >= 15, while Libcxx 18 requires Clang >= 16.
34+
RUN LLVM_VERSION=llvmorg-17.0.6 ./build-all.sh $TOOLCHAIN_PREFIX --host-clang=clang-15 && \
35+
rm -rf /build/*
36+
37+
ENV PATH=$TOOLCHAIN_PREFIX/bin:$PATH
38+
39+
# Test the installation
40+
COPY test/*.c test/*.cpp test/*.h test/*.idl test/*.rc test/Makefile ./test/
41+
COPY run-tests.sh ./
42+
RUN RUN_I686=false RUN_X86_64=false ./run-tests.sh $TOOLCHAIN_PREFIX

0 commit comments

Comments
 (0)