mirror of
https://github.com/godotengine/build-containers.git
synced 2026-01-04 18:10:06 +03:00
To get WebAssembly templates to actually work, we need to use Mono 6.6 (currently in preview), which doesn't have tags yet but is in the `2019-08` branch. So I dehardcoded the `mono-` prefix for the git tree-ish to allow using `./build.sh 2019-08`. 6.6 doesn't build with msbuild 16.0, so I'm upgrading to its matching version 16.3. There are no DEB files for 16.3 on the EOL'ed Ubuntu 14.04, but it seems that the 16.04 packages install cleanly. We also backport a patch from mono's master branch to fix wasm support further, and enable parallel build jobs for make.
44 lines
2.4 KiB
Docker
44 lines
2.4 KiB
Docker
FROM i386/ubuntu:trusty
|
|
|
|
ARG mono_version
|
|
|
|
RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mandatory!\n\n"; exit 1; fi && \
|
|
apt-get update && \
|
|
apt-get -y install wget && \
|
|
cd /root && \
|
|
wget -O- 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x1E9377A2BA9EF27F' | apt-key add - && \
|
|
wget -O- 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x8E51A6D660CD88D67D65221D90BD7EACED8E640A' | apt-key add - && \
|
|
echo 'deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main' >> /etc/apt/sources.list && \
|
|
echo 'deb http://ppa.launchpad.net/mc3man/trusty-media/ubuntu trusty main' >> /etc/apt/sources.list && \
|
|
apt-get -y update && \
|
|
apt-get -y install --no-install-recommends \
|
|
autoconf automake bzip2 cmake curl gettext git libtool make perl scons xz-utils \
|
|
gcc-8 g++-8 libudev-dev libx11-dev libxcursor-dev libxrandr-dev libasound2-dev libpulse-dev \
|
|
libgl1-mesa-dev libglu1-mesa-dev libxi-dev libxinerama-dev yasm && \
|
|
ln -sf /usr/bin/gcc-ranlib-8 /usr/bin/gcc-ranlib && \
|
|
ln -sf /usr/bin/gcc-ar-8 /usr/bin/gcc-ar && \
|
|
ln -sf /usr/bin/gcc-8 /usr/bin/gcc && \
|
|
ln -sf /usr/bin/g++-8 /usr/bin/g++
|
|
|
|
RUN git clone https://github.com/mono/mono --branch ${mono_version} --single-branch && \
|
|
cd mono && git submodule update --init && \
|
|
NOCONFIGURE=1 ./autogen.sh && \
|
|
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib/mono --disable-boehm --host=i386-linux-gnu && \
|
|
make -j && \
|
|
make install && \
|
|
cd .. && \
|
|
cert-sync /etc/ssl/certs/ca-certificates.crt && \
|
|
rm -rf /root/mono && \
|
|
wget https://download.mono-project.com/repo/ubuntu/pool/main/m/msbuild/msbuild_16.3+xamarinxplat.2019.08.08.00.55-0xamarin2+ubuntu1604b1_all.deb && \
|
|
wget https://download.mono-project.com/repo/ubuntu/pool/main/c/core-setup/msbuild-libhostfxr_3.0.0.2019.04.16.02.13-0xamarin3+ubuntu1604b1_i386.deb && \
|
|
wget https://download.mono-project.com/repo/ubuntu/pool/main/m/msbuild/msbuild-sdkresolver_16.3+xamarinxplat.2019.08.08.00.55-0xamarin2+ubuntu1604b1_all.deb && \
|
|
wget https://download.mono-project.com/repo/ubuntu/pool/main/n/nuget/nuget_5.2.0.6090.bin-0xamarin1+ubuntu1604b1_all.deb && \
|
|
dpkg -i --force-all *.deb && \
|
|
sed -i '/Depends.*mono/d' /var/lib/dpkg/status && \
|
|
ln -s /usr/bin/mono /usr/bin/cli && \
|
|
apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/ && \
|
|
rm *.deb
|
|
|
|
CMD /bin/bash
|