mirror of
https://github.com/godotengine/build-containers.git
synced 2026-01-08 10:11:14 +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.
32 lines
1.2 KiB
JavaScript
32 lines
1.2 KiB
JavaScript
ARG mono_version
|
|
FROM godot-mono:${mono_version}
|
|
ARG mono_version
|
|
|
|
RUN dnf -y install --setopt=install_weak_deps=False \
|
|
java-openjdk yasm && \
|
|
dnf clean all && \
|
|
git clone https://github.com/emscripten-core/emsdk && \
|
|
cd emsdk && \
|
|
./emsdk install 1.38.47-upstream && \
|
|
./emsdk activate 1.38.47-upstream && \
|
|
echo "source /root/emsdk/emsdk_env.sh" >> /root/.bashrc
|
|
|
|
RUN git clone https://github.com/mono/mono --branch ${mono_version} --single-branch && \
|
|
cd mono && git submodule update --init && cd .. && \
|
|
export MONO_SOURCE_ROOT=/root/mono && \
|
|
export make="make -j" && \
|
|
git clone https://github.com/godotengine/godot-mono-builds && \
|
|
cd godot-mono-builds && \
|
|
git checkout bd129da22b8b9c96f3e8b07af348cc5fb61504bf && \
|
|
python3 patch_emscripten.py && \
|
|
git am -3 /root/files/patches/mono-wasm-avoid-aligning-stack-bounds.patch && \
|
|
python3 wasm.py configure --target=runtime && \
|
|
python3 wasm.py make --target=runtime && \
|
|
cd /root/mono && git clean -fdx && NOCONFIGURE=1 ./autogen.sh && \
|
|
cd /root/godot-mono-builds && \
|
|
python3 bcl.py make --product wasm && \
|
|
cd .. && \
|
|
rm -rf /root/mono /root/godot-mono-builds
|
|
|
|
CMD /bin/bash
|