mirror of
https://github.com/godotengine/build-containers.git
synced 2026-01-03 10:09:18 +03:00
Specifying only a branch like '2019-08' is problematic if upstream commits something between the builds of two containers. We could make a tarball in the first container build and reuse that, but we need the flexibility of Git for some patching in the Android and JavaScript builds, so instead we allow specifying a git tree-ish as the third argument. We can therefore also give a pretty version string to use for the image name as second argument, e.g. 6.6.0.160 for bef1e6335812d32f8eab648c0228fc624b9f8357. As we can't `git clone` a commit hash directly, we still need to provide both branch name and then commit hash for this use case.
37 lines
1.4 KiB
JavaScript
37 lines
1.4 KiB
JavaScript
ARG img_version
|
|
FROM godot-mono:${img_version}
|
|
|
|
ARG mono_version
|
|
ARG mono_commit
|
|
|
|
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 && \
|
|
git checkout a5082b232617c762cb65832429f896c838df2483 && \
|
|
./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 /root/mono && \
|
|
if [ ! -z "${mono_commit}" ]; then git checkout ${mono_commit}; fi && \
|
|
git submodule update --init && \
|
|
git apply -3 /root/files/patches/mono-pr16636-wasm-bugfix-and-update.diff && \
|
|
export MONO_SOURCE_ROOT=/root/mono && \
|
|
export make="make -j" && \
|
|
git clone https://github.com/godotengine/godot-mono-builds /root/godot-mono-builds && \
|
|
cd /root/godot-mono-builds && \
|
|
git checkout bd129da22b8b9c96f3e8b07af348cc5fb61504bf && \
|
|
python3 patch_emscripten.py && \
|
|
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 /root && \
|
|
rm -rf /root/mono /root/godot-mono-builds
|
|
|
|
CMD /bin/bash
|