mirror of
https://github.com/yuzu-emu/build-environments.git
synced 2024-11-22 05:15:38 +01:00
4df5ab453a
Effectively downgrades boost from 1.81 to 1.79 at time of writing. 1.79 appears to be causing issues in yuzu during runtime.
92 lines
3.0 KiB
Docker
92 lines
3.0 KiB
Docker
FROM archlinux:latest
|
|
LABEL 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 \
|
|
clang \
|
|
polly \
|
|
lld \
|
|
sudo \
|
|
gnupg \
|
|
wget \
|
|
git \
|
|
glslang \
|
|
python-pip \
|
|
python \
|
|
ccache \
|
|
p7zip \
|
|
cmake \
|
|
ninja \
|
|
mingw-w64-gcc \
|
|
mingw-w64-libusb \
|
|
mingw-w64-lz4 \
|
|
mingw-w64-nlohmann-json \
|
|
mingw-w64-opus \
|
|
mingw-w64-qt5-base \
|
|
mingw-w64-qt5-declarative \
|
|
mingw-w64-qt5-graphicaleffects \
|
|
mingw-w64-qt5-multimedia \
|
|
mingw-w64-qt5-tools \
|
|
mingw-w64-qt5-winextras \
|
|
mingw-w64-tools \
|
|
mingw-w64-winpthreads \
|
|
mingw-w64-zlib \
|
|
mingw-w64-zstd \
|
|
&& \
|
|
pacman -Scc --noconfirm && \
|
|
rm -rf /usr/share/man/ /tmp/* /var/tmp/ /usr/{i686-w64-mingw32,lib32} /usr/lib/gcc/i686-w64-mingw32
|
|
|
|
# Install Boost from yuzu-emu/ext-linux-bin
|
|
RUN wget --no-verbose \
|
|
https://github.com/yuzu-emu/ext-linux-bin/raw/main/mingw/mingw-w64-boost-1.79.0-1-any.pkg.tar.zst && \
|
|
pacman -U --noconfirm mingw-w64-boost-1.79.0-1-any.pkg.tar.zst && \
|
|
rm mingw-w64-boost-1.79.0-1-any.pkg.tar.zst
|
|
|
|
# Setup extra mingw work arounds
|
|
RUN pip3 install pefile
|
|
# Compatibility with the old Ubuntu MingW image
|
|
RUN ln -s /usr/x86_64-w64-mingw32/lib/qt /usr/x86_64-w64-mingw32/lib/qt5
|
|
# Give yuzu user sudo access for AUR usage
|
|
RUN echo "yuzu ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers
|
|
|
|
USER 1027
|
|
|
|
# Build/install small AUR packages
|
|
RUN \
|
|
# mingw-w64-sdl2
|
|
cd && \
|
|
git clone https://aur.archlinux.org/mingw-w64-sdl2.git && \
|
|
cd mingw-w64-sdl2 && \
|
|
# Revert to SDL 2.0.22
|
|
git checkout bd37953 && \
|
|
# Only build for x86_64
|
|
sed -i "s/'i686-w64-mingw32'//g" PKGBUILD && \
|
|
makepkg -si --noconfirm --noprogressbar && \
|
|
# Get rid of -mwindows from SDL2 CMake configs
|
|
sudo sed -i 's/-mwindows//g' /usr/x86_64-w64-mingw32/lib/cmake/SDL2/sdl2-config.cmake && \
|
|
# mingw-w64-clang -- MinGW wrapper for host clang
|
|
cd && \
|
|
git clone https://aur.archlinux.org/mingw-w64-wclang-git.git && \
|
|
cd mingw-w64-wclang-git && \
|
|
makepkg -si --noconfirm --noprogressbar && \
|
|
# mingw-w64-fmt
|
|
cd && \
|
|
git clone https://aur.archlinux.org/mingw-w64-fmt.git && \
|
|
cd mingw-w64-fmt && \
|
|
# Only build for x86_64
|
|
sed -i 's/i686-w64-mingw32//g' PKGBUILD && \
|
|
makepkg -si --noconfirm --noprogressbar --nocheck && \
|
|
# cleanup
|
|
cd && rm -rf mingw-* && \
|
|
sudo sed -i 's/yuzu/#yuzu/g' /etc/sudoers
|
|
|