Add linux-mingw update for conan cross compiling as well

This commit is contained in:
James Rowe 2020-05-06 02:27:23 -06:00
parent 58cb2114b5
commit b0e1a8e193
2 changed files with 47 additions and 7 deletions

View file

@ -1,6 +1,8 @@
FROM archlinux:latest FROM archlinux:latest
MAINTAINER yuzu MAINTAINER yuzu
# 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 current distro packages
# and the second run actually pulls the updates from the repos.
RUN useradd -m -s /bin/bash yuzu && mkdir -p /tmp/pkgs && \ RUN useradd -m -s /bin/bash yuzu && mkdir -p /tmp/pkgs && \
echo "[ownstuff]" >> /etc/pacman.conf && \ echo "[ownstuff]" >> /etc/pacman.conf && \
echo "SigLevel = Optional TrustAll" >> /etc/pacman.conf && \ echo "SigLevel = Optional TrustAll" >> /etc/pacman.conf && \
@ -14,28 +16,40 @@ RUN useradd -m -s /bin/bash yuzu && mkdir -p /tmp/pkgs && \
git \ git \
python-pip \ python-pip \
python \ python \
python2 \
ccache \ ccache \
p7zip \ p7zip \
cmake \ cmake \
ninja \ ninja \
mingw-w64-boost \
mingw-w64-gcc \ mingw-w64-gcc \
mingw-w64-tools \ mingw-w64-lz4 \
mingw-w64-sdl2 \ mingw-w64-opus \
mingw-w64-qt5-base \ mingw-w64-qt5-base \
mingw-w64-qt5-tools \ mingw-w64-qt5-tools \
mingw-w64-qt5-graphicaleffects \ mingw-w64-qt5-graphicaleffects \
mingw-w64-qt5-multimedia \ mingw-w64-qt5-multimedia \
mingw-w64-qt5-winextras \ mingw-w64-qt5-winextras \
python2 \ mingw-w64-sdl2 \
mingw-w64-opus \ mingw-w64-tools \
mingw-w64-winpthreads && \ mingw-w64-winpthreads \
mingw-w64-zlib \
mingw-w64-zstd \
&& \
pacman -Scc --noconfirm && \ pacman -Scc --noconfirm && \
rm -rf /usr/share/man/ /tmp/ /var/tmp/ rm -rf /usr/share/man/ /tmp/ /var/tmp/
# Setup extra mingw work arounds
COPY mingw-setup.sh /tmp/ COPY mingw-setup.sh /tmp/
RUN cd /tmp/ && bash -e mingw-setup.sh RUN cd /tmp/ && bash -e mingw-setup.sh
# 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
# Cleanup # Install conan and add the mingw cross compile as the default profile
USER root RUN pip3 install conan
COPY --chown=yuzu:yuzu default /home/yuzu/.conan/profiles/
USER yuzu
# 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

26
linux-mingw/default Normal file
View file

@ -0,0 +1,26 @@
toolchain=/usr/x86_64-w64-mingw32
target_host=x86_64-w64-mingw32
cc_compiler=gcc
cxx_compiler=g++
[env]
CONAN_CMAKE_FIND_ROOT_PATH=$toolchain
CHOST=$target_host
AR=$target_host-ar
AS=$target_host-as
RANLIB=$target_host-ranlib
CC=$target_host-$cc_compiler
CXX=$target_host-$cxx_compiler
STRIP=$target_host-strip
RC=$target_host-windres
[settings]
# We are cross-building to Windows
os=Windows
arch=x86_64
compiler=gcc
# Adjust to the gcc version of your MinGW package
compiler.version=9
compiler.libcxx=libstdc++11
build_type=Release