mirror of
https://github.com/yuzu-emu/build-environments.git
synced 2024-11-25 14:55:41 +01:00
mingw: Clang preparation
Removes usage of packages from our own repo since the upstream ones are no longer broken. Some packages were AUR-only, so they are now built at the end of the script. Also adds zstd and libusb yuzu requirements. In addition, adds clang, polly, and lld as well as mingw-w64-clang, a wrapper of Clang for building projects as a Windows target.
This commit is contained in:
parent
d1a84a6819
commit
5c28ea17fb
@ -1,8 +1,6 @@
|
|||||||
FROM archlinux:latest
|
FROM archlinux:latest
|
||||||
LABEL maintainer="yuzu"
|
LABEL maintainer="yuzu"
|
||||||
|
|
||||||
ENV EXT_BIN_URL="https://github.com/yuzu-emu/ext-linux-bin/raw/main/mingw"
|
|
||||||
|
|
||||||
# Add mingw-repo "ownstuff" is a AUR with an up to date mingw64
|
# 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
|
# 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.
|
# current distro packages, and the second run actually pulls the updates from the repos.
|
||||||
@ -14,6 +12,10 @@ RUN useradd -m -u 1027 -s /bin/bash yuzu && mkdir -p /tmp/pkgs && \
|
|||||||
pacman -Syu --noconfirm && \
|
pacman -Syu --noconfirm && \
|
||||||
pacman -S --needed --noconfirm --noprogressbar \
|
pacman -S --needed --noconfirm --noprogressbar \
|
||||||
base-devel \
|
base-devel \
|
||||||
|
clang \
|
||||||
|
polly \
|
||||||
|
lld \
|
||||||
|
sudo \
|
||||||
gnupg \
|
gnupg \
|
||||||
wget \
|
wget \
|
||||||
git \
|
git \
|
||||||
@ -26,23 +28,21 @@ RUN useradd -m -u 1027 -s /bin/bash yuzu && mkdir -p /tmp/pkgs && \
|
|||||||
ninja \
|
ninja \
|
||||||
mingw-w64-boost \
|
mingw-w64-boost \
|
||||||
mingw-w64-gcc \
|
mingw-w64-gcc \
|
||||||
|
mingw-w64-libusb \
|
||||||
mingw-w64-lz4 \
|
mingw-w64-lz4 \
|
||||||
mingw-w64-opus \
|
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-sdl2 \
|
mingw-w64-sdl2 \
|
||||||
mingw-w64-tools \
|
mingw-w64-tools \
|
||||||
mingw-w64-winpthreads \
|
mingw-w64-winpthreads \
|
||||||
mingw-w64-zlib \
|
mingw-w64-zlib \
|
||||||
|
mingw-w64-zstd \
|
||||||
&& \
|
&& \
|
||||||
cd /tmp && \
|
|
||||||
wget -q ${EXT_BIN_URL}/mingw-w64-fmt-8.0.0-5-any.pkg.tar.zst && \
|
|
||||||
wget -q ${EXT_BIN_URL}/mingw-w64-qt5-base-5.15.2-1-x86_64.pkg.tar.zst && \
|
|
||||||
wget -q ${EXT_BIN_URL}/mingw-w64-qt5-declarative-5.15.2-1-x86_64.pkg.tar.zst && \
|
|
||||||
wget -q ${EXT_BIN_URL}/mingw-w64-qt5-graphicaleffects-5.15.2-1-any.pkg.tar.zst && \
|
|
||||||
wget -q ${EXT_BIN_URL}/mingw-w64-qt5-multimedia-5.15.2-1-any.pkg.tar.zst && \
|
|
||||||
wget -q ${EXT_BIN_URL}/mingw-w64-qt5-tools-5.15.2-1-x86_64.pkg.tar.zst && \
|
|
||||||
wget -q ${EXT_BIN_URL}/mingw-w64-qt5-winextras-5.15.2-1-any.pkg.tar.zst && \
|
|
||||||
wget -q ${EXT_BIN_URL}/mingw-w64-zstd-1.5.0-1-any.pkg.tar.zst && \
|
|
||||||
pacman -U --noconfirm --noprogressbar mingw-w64-{fmt-8.0.0-5-any,qt5-base-5.15.2-1-x86_64,qt5-declarative-5.15.2-1-x86_64,qt5-graphicaleffects-5.15.2-1-any,qt5-multimedia-5.15.2-1-any,qt5-tools-5.15.2-1-x86_64,qt5-winextras-5.15.2-1-any,zstd-1.5.0-1-any}.pkg.tar.zst && \
|
|
||||||
pacman -Scc --noconfirm && \
|
pacman -Scc --noconfirm && \
|
||||||
rm -rf /usr/share/man/ /tmp/* /var/tmp/ /usr/{i686-w64-mingw32,lib32} /usr/lib/gcc/i686-w64-mingw32
|
rm -rf /usr/share/man/ /tmp/* /var/tmp/ /usr/{i686-w64-mingw32,lib32} /usr/lib/gcc/i686-w64-mingw32
|
||||||
|
|
||||||
@ -50,9 +50,32 @@ RUN useradd -m -u 1027 -s /bin/bash yuzu && mkdir -p /tmp/pkgs && \
|
|||||||
RUN pip3 install pefile
|
RUN pip3 install pefile
|
||||||
# Compatibility with the old Ubuntu MingW image
|
# Compatibility with the old Ubuntu MingW image
|
||||||
RUN ln -s /usr/x86_64-w64-mingw32/lib/qt /usr/x86_64-w64-mingw32/lib/qt5
|
RUN ln -s /usr/x86_64-w64-mingw32/lib/qt /usr/x86_64-w64-mingw32/lib/qt5
|
||||||
|
# Get rid of -mwindows from SDL2 CMake configs
|
||||||
|
RUN sed -i 's/-mwindows//g' /usr/x86_64-w64-mingw32/lib/cmake/SDL2/sdl2-config.cmake
|
||||||
|
# Give yuzu user sudo access for AUR usage
|
||||||
|
RUN echo "yuzu ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers
|
||||||
|
|
||||||
# Install conan and add the mingw cross compile as the default profile
|
# Install conan and add the mingw cross compile as the default profile
|
||||||
RUN pip3 install conan
|
RUN pip3 install conan
|
||||||
COPY --chown=yuzu:yuzu default /home/yuzu/.conan/profiles/
|
COPY --chown=yuzu:yuzu default /home/yuzu/.conan/profiles/
|
||||||
COPY --chown=yuzu:yuzu settings.yml /home/yuzu/.conan/settings.yml
|
COPY --chown=yuzu:yuzu settings.yml /home/yuzu/.conan/settings.yml
|
||||||
USER 1027
|
USER 1027
|
||||||
|
|
||||||
|
# Build/install small AUR packages
|
||||||
|
RUN \
|
||||||
|
# mingw-w64-clang -- MinGW wrapper for host clang
|
||||||
|
cd && \
|
||||||
|
git clone https://aur.archlinux.org/mingw-w64-clang-git.git && \
|
||||||
|
cd mingw-w64-clang-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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user