2019-12-02 13:30:41 +01:00
|
|
|
ARG img_version
|
|
|
|
FROM godot-mono:${img_version}
|
|
|
|
|
2019-01-07 21:51:22 +01:00
|
|
|
ARG mono_version
|
2019-12-03 12:47:51 +01:00
|
|
|
ARG mono_commit
|
2019-01-07 21:51:22 +01:00
|
|
|
|
2019-11-15 10:49:02 +01:00
|
|
|
RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mandatory!\n\n"; exit 1; fi && \
|
|
|
|
dnf -y install --setopt=install_weak_deps=False \
|
2019-11-15 11:56:31 +01:00
|
|
|
automake autoconf bzip2-devel clang libicu-devel libtool libxml2-devel llvm-devel openssl-devel yasm && \
|
|
|
|
dnf clean all && \
|
2019-01-07 21:51:22 +01:00
|
|
|
git clone https://github.com/tpoechtrager/osxcross.git && \
|
|
|
|
cd /root/osxcross && \
|
2019-11-19 11:16:52 +01:00
|
|
|
git checkout 542acc2ef6c21aeb3f109c03748b1015a71fed63 && \
|
2019-10-01 22:04:13 +02:00
|
|
|
ln -s /root/files/MacOSX10.14.sdk.tar.xz /root/osxcross/tarballs && \
|
2019-11-19 11:16:52 +01:00
|
|
|
UNATTENDED=1 ./build.sh
|
|
|
|
|
|
|
|
ENV OSXCROSS_ROOT=/root/osxcross
|
|
|
|
ENV PATH="/root/osxcross/target/bin:${PATH}"
|
2019-08-31 13:05:27 +02:00
|
|
|
|
2019-11-21 09:44:11 +01:00
|
|
|
RUN git clone https://github.com/mono/mono --branch ${mono_version} --single-branch && \
|
2019-12-03 12:47:51 +01:00
|
|
|
cd /root/mono && \
|
|
|
|
if [ ! -z "${mono_commit}" ]; then git checkout ${mono_commit}; fi && \
|
|
|
|
git submodule update --init && \
|
2020-01-21 14:49:08 +01:00
|
|
|
git apply -3 /root/files/patches/mono-unity-Clear-TLS-instead-of-aborting.patch && \
|
2019-11-19 11:16:52 +01:00
|
|
|
export CMAKE=/root/osxcross/target/bin/x86_64-apple-darwin18-cmake && \
|
|
|
|
NOCONFIGURE=1 ./autogen.sh && \
|
|
|
|
./configure --prefix=/root/dependencies/mono \
|
2019-01-07 21:51:22 +01:00
|
|
|
--build=x86_64-linux-gnu \
|
2019-11-19 11:16:52 +01:00
|
|
|
--host=x86_64-apple-darwin18 \
|
2019-01-07 21:51:22 +01:00
|
|
|
--disable-boehm \
|
|
|
|
--disable-mcs-build \
|
|
|
|
--with-tls=pthread \
|
|
|
|
--disable-dtrace \
|
2019-05-23 03:21:22 +02:00
|
|
|
--disable-executables \
|
2019-01-07 21:51:22 +01:00
|
|
|
mono_cv_uscore=yes \
|
|
|
|
_lt_dar_can_shared=yes \
|
|
|
|
CC=o64-clang \
|
|
|
|
CXX=o64-clang++ && \
|
|
|
|
make -j && \
|
|
|
|
make install && \
|
2019-12-03 12:47:51 +01:00
|
|
|
cd /root && \
|
2019-01-07 21:51:22 +01:00
|
|
|
rm -f /root/dependencies/mono/bin/mono /root/dependencies/mono/bin/mono-sgen && \
|
|
|
|
ln -s /usr/bin/mono /root/dependencies/mono/bin/mono && \
|
|
|
|
ln -s /usr/bin/mono-sgen /root/dependencies/mono/bin/mono-sgen && \
|
2019-11-15 10:49:02 +01:00
|
|
|
ln -sf /usr/lib/mono/* /root/dependencies/mono/lib/mono && \
|
2019-11-23 11:09:19 +01:00
|
|
|
mkdir -p /root/dependencies/mono/etc && \
|
|
|
|
cp -rvp /etc/mono /root/dependencies/mono/etc/ && \
|
|
|
|
cp /root/files/mono-config-macosx /root/dependencies/mono/etc/mono/config && \
|
2019-11-19 11:16:52 +01:00
|
|
|
rm -rf /root/mono
|
2019-01-07 21:51:22 +01:00
|
|
|
|
2019-01-17 23:06:38 +01:00
|
|
|
ENV MONO64_PREFIX=/root/dependencies/mono
|
|
|
|
|
2019-11-15 11:22:07 +01:00
|
|
|
CMD /bin/bash
|