Files
build-containers/Dockerfile.windows
Rémi Verschelde f7966f0a1e Disable installation of weak deps
This saves us from pulling gtk2 and gtk3 as weak deps of
perl and git or whatnot... And we don't need to pull in all
the documentation on Ubuntu.

Also ensures that we properly run `dnf clean all` after each
installation.
2019-11-18 17:09:03 +01:00

51 lines
2.6 KiB
Docker

ARG mono_version
FROM godot-mono:${mono_version}
ARG mono_version
RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mandatory!\n\n"; exit 1; fi
RUN dnf -y install --setopt=install_weak_deps=False \
mingw32-gcc mingw32-gcc-c++ mingw32-winpthreads-static mingw64-gcc mingw64-gcc-c++ mingw64-winpthreads-static yasm && \
dnf clean all && \
rpm -Uvh --force /root/files/mingw-binutils-generic-2.30-5.fc29.godot.x86_64.rpm \
/root/files/mingw64-binutils-2.30-5.fc29.godot.x86_64.rpm \
/root/files/mingw32-binutils-2.30-5.fc29.godot.x86_64.rpm && \
if [ ${mono_version%%.*} -ge 6 ]; then \
curl https://download.mono-project.com/sources/mono/mono-${mono_version}.tar.xz | tar xJ; \
else \
curl https://download.mono-project.com/sources/mono/mono-${mono_version}.tar.bz2 | tar xj; \
fi && \
cp -r mono-${mono_version} mono-${mono_version}-32 && \
cd mono-${mono_version} && \
./configure --prefix=/root/dependencies/mono-64 --host=x86_64-w64-mingw32 --disable-boehm --disable-mcs-build --disable-executables && \
echo '#define HAVE_STRUCT_SOCKADDR_IN6 1' >> config.h && \
make -j && \
make install && \
cd .. && \
rm -rf mono-${mono_version} && \
cp /root/dependencies/mono-64/bin/libMonoPosixHelper.dll /root/dependencies/mono-64/bin/MonoPosixHelper.dll && \
rm -f /root/dependencies/mono-64/bin/mono /root/dependencies/mono-64/bin/mono-sgen && \
ln -s /usr/bin/mono /root/dependencies/mono-64/bin/mono && \
ln -s /usr/bin/mono-sgen /root/dependencies/mono-64/bin/mono-sgen && \
ln -sf /usr/lib/mono/* /root/dependencies/mono-64/lib/mono || /bin/true && \
cp -rvp /etc/mono /root/dependencies/mono-64/etc
RUN cd mono-${mono_version}-32 && \
./configure --prefix=/root/dependencies/mono-32 --host=i686-w64-mingw32 --disable-boehm --disable-mcs-build --disable-executables && \
echo '#define HAVE_STRUCT_SOCKADDR_IN6 1' >> config.h && \
make -j && \
make install && \
cd .. && \
rm -rf mono-${mono_version}-32 && \
cp /root/dependencies/mono-32/bin/libMonoPosixHelper.dll /root/dependencies/mono-32/bin/MonoPosixHelper.dll && \
rm -f /root/dependencies/mono-32/bin/mono /root/dependencies/mono-32/bin/mono-sgen && \
ln -s /usr/bin/mono /root/dependencies/mono-32/bin/mono && \
ln -s /usr/bin/mono-sgen /root/dependencies/mono-32/bin/mono-sgen && \
ln -sf /usr/lib/mono/* /root/dependencies/mono-32/lib/mono || /bin/true && \
cp -rvp /etc/mono /root/dependencies/mono-32/etc
ENV MONO32_PREFIX=/root/dependencies/mono-32
ENV MONO64_PREFIX=/root/dependencies/mono-64
CMD ['/bin/bash']