-
-
Notifications
You must be signed in to change notification settings - Fork 188
/
Dockerfile.toolchain
31 lines (23 loc) · 1.19 KB
/
Dockerfile.toolchain
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
FROM ubuntu:22.04
RUN apt-get update -qq && \
DEBIAN_FRONTEND="noninteractive" apt-get install -qqy --no-install-recommends \
git wget bzip2 file unzip libtool pkg-config cmake build-essential \
automake yasm gettext autopoint vim-tiny python3 python3-distutils \
ninja-build ca-certificates curl less zip && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
RUN git config --global user.name "LLVM MinGW" && \
git config --global user.email root@localhost
WORKDIR /build
ENV TOOLCHAIN_PREFIX=/opt/llvm-mingw
ARG TOOLCHAIN_ARCHS="i686 x86_64 armv7 aarch64"
# Copy prebuilt toolchains for the current architecture.
# Test executing a binary, to make sure that it works (i.e. it is not built
# requiring a newer version of glibc or libstdc++ than what is available in
# this container).
RUN --mount=type=bind,source=toolchain,target=/toolchain \
mkdir -p $TOOLCHAIN_PREFIX && ARCH=$(uname -m) && \
tar xf /toolchain/linux-ucrt-$ARCH-toolchain/llvm-mingw-*-$ARCH.tar.xz --strip-components 1 -C $TOOLCHAIN_PREFIX && \
ANY_ARCH=$(echo $TOOLCHAIN_ARCHS | awk '{print $1}') && \
$TOOLCHAIN_PREFIX/bin/$ANY_ARCH-w64-mingw32-clang --version
ENV PATH=$TOOLCHAIN_PREFIX/bin:$PATH