build-environments/linux-mingw/Dockerfile

56 lines
1.8 KiB
Docker

FROM archlinux:latest
MAINTAINER yuzu
# Add mingw-repo "ownstuff" is a AUR with an up to date mingw64
# Runs pacman -Syu twice in order to work around pacman issues where the first run only updates the current distro packages
# and the second run actually pulls the updates from the repos.
RUN useradd -m -u 1027 -s /bin/bash yuzu && mkdir -p /tmp/pkgs && \
echo "[ownstuff]" >> /etc/pacman.conf && \
echo "SigLevel = Optional TrustAll" >> /etc/pacman.conf && \
echo "Server = https://martchus.no-ip.biz/repo/arch/ownstuff/os/\$arch" >> /etc/pacman.conf && \
pacman -Syu --noconfirm && \
pacman -Syu --noconfirm && \
pacman -S --needed --noconfirm --noprogressbar \
base-devel \
gnupg \
wget \
git \
python-pip \
python \
python2 \
ccache \
p7zip \
cmake \
ninja \
mingw-w64-boost \
mingw-w64-gcc \
mingw-w64-lz4 \
mingw-w64-opus \
mingw-w64-qt5-base \
mingw-w64-qt5-tools \
mingw-w64-qt5-graphicaleffects \
mingw-w64-qt5-multimedia \
mingw-w64-qt5-winextras \
mingw-w64-sdl2 \
mingw-w64-tools \
mingw-w64-winpthreads \
mingw-w64-zlib \
mingw-w64-zstd \
&& \
pacman -Scc --noconfirm && \
rm -rf /usr/share/man/ /tmp/ /var/tmp/
# Setup extra mingw work arounds
COPY mingw-setup.sh /tmp/
RUN cd /tmp/ && bash -e mingw-setup.sh
# Compatibility with the old Ubuntu MingW image
RUN ln -s /usr/x86_64-w64-mingw32/lib/qt /usr/x86_64-w64-mingw32/lib/qt5
# Install conan and add the mingw cross compile as the default profile
RUN pip3 install conan
COPY --chown=yuzu:yuzu default /home/yuzu/.conan/profiles/
USER 1027
# Install/build the missing libs (uses the default mingw cross compile profile)
RUN conan install catch2/2.11.0@ --build=missing && \
conan install fmt/6.2.0@ --build=missing && \
conan install nlohmann_json/3.7.3@ --build=missing