File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed
Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change 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
You can’t perform that action at this time.
0 commit comments