mirror of
https://github.com/godotengine/build-containers.git
synced 2025-12-31 21:48:41 +03:00
Initial commit
This commit is contained in:
9
.gitignore
vendored
Normal file
9
.gitignore
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
*.tar
|
||||
*.tar.gz
|
||||
*.tar.bz2
|
||||
*.tar.xz
|
||||
*.exe
|
||||
*.swp
|
||||
*.dmg
|
||||
*.zip
|
||||
*.xip
|
||||
10
Dockerfile.android
Normal file
10
Dockerfile.android
Normal file
@@ -0,0 +1,10 @@
|
||||
FROM godot-fedora:latest
|
||||
|
||||
RUN dnf -y install scons java-1.8.0-openjdk-devel ncurses-compat-libs unzip which && \
|
||||
curl -LO https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip && \
|
||||
unzip sdk-tools-linux-4333796.zip && \
|
||||
rm sdk-tools-linux-4333796.zip && \
|
||||
yes | tools/bin/sdkmanager --licenses && \
|
||||
tools/bin/sdkmanager ndk-bundle 'platforms;android-23' 'build-tools;19.1.0' 'build-tools;28.0.3' 'platforms;android-28'
|
||||
|
||||
CMD ['/bin/bash']
|
||||
5
Dockerfile.base
Normal file
5
Dockerfile.base
Normal file
@@ -0,0 +1,5 @@
|
||||
FROM fedora:29
|
||||
|
||||
WORKDIR /root
|
||||
|
||||
CMD /bin/true
|
||||
19
Dockerfile.ios
Normal file
19
Dockerfile.ios
Normal file
@@ -0,0 +1,19 @@
|
||||
FROM godot-fedora:latest
|
||||
|
||||
RUN dnf -y install automake autoconf clang gcc gcc-c++ gcc-objc gcc-objc++ cmake git libicu-devel libtool libxml2-devel llvm-devel make openssl-devel patch perl python scons xz && \
|
||||
git clone https://github.com/tpoechtrager/cctools-port.git && \
|
||||
cd /root/cctools-port && \
|
||||
sed -i 's#./autogen.sh#libtoolize -c -i --force\n./autogen.sh#' usage_examples/ios_toolchain/build.sh && \
|
||||
usage_examples/ios_toolchain/build.sh /root/files/iPhoneOS11.2.sdk.tar.xz arm64 && \
|
||||
mkdir -p /root/ioscross/arm64 && \
|
||||
mv usage_examples/ios_toolchain/target/* /root/ioscross/arm64 && \
|
||||
mkdir /root/ioscross/arm64/usr && \
|
||||
ln -s /root/ioscross/arm64/bin /root/ioscross/arm64/usr/bin && \
|
||||
sed -i 's#^TRIPLE=.*#TRIPLE="x86_64-apple-darwin11"#' usage_examples/ios_toolchain/build.sh && \
|
||||
usage_examples/ios_toolchain/build.sh /root/files/iPhoneSimulator11.2.sdk.tar.xz x86_64 && \
|
||||
mkdir -p /root/ioscross/x86_64 && \
|
||||
mv usage_examples/ios_toolchain/target/* /root/ioscross/x86_64 && \
|
||||
mkdir /root/ioscross/x86_64/usr && \
|
||||
ln -s /root/ioscross/x86_64/bin /root/ioscross/x86_64/usr/bin
|
||||
|
||||
CMD ['/bin/bash']
|
||||
9
Dockerfile.javascript
Normal file
9
Dockerfile.javascript
Normal file
@@ -0,0 +1,9 @@
|
||||
FROM godot-fedora:latest
|
||||
|
||||
RUN dnf -y install scons git xz java-openjdk && dnf clean all && \
|
||||
git clone https://github.com/juj/emsdk.git && \
|
||||
cd /root/emsdk && \
|
||||
/root/emsdk/emsdk install latest && \
|
||||
/root/emsdk/emsdk activate latest
|
||||
|
||||
CMD ['/bin/bash']
|
||||
18
Dockerfile.mono
Normal file
18
Dockerfile.mono
Normal file
@@ -0,0 +1,18 @@
|
||||
FROM godot-fedora:latest
|
||||
|
||||
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 cmake gcc gcc-c++ make which perl python curl bzip2 && dnf clean all && \
|
||||
curl https://download.mono-project.com/sources/mono/mono-${mono_version}.tar.bz2 | tar xj && \
|
||||
cd mono-${mono_version} && \
|
||||
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib/mono --disable-boehm && make -j && make install && make distclean && \
|
||||
cd /root && \
|
||||
rm -rf mono-${mono_version} && \
|
||||
cert-sync /etc/pki/tls/certs/ca-bundle.crt && \
|
||||
rpm -ivh --nodeps https://download.mono-project.com/repo/centos7-stable/m/msbuild/msbuild-16.0+xamarinxplat.2018.09.26.17.53-0.xamarin.3.epel7.noarch.rpm \
|
||||
https://download.mono-project.com/repo/centos7-stable/m/msbuild-libhostfxr/msbuild-libhostfxr-2.0.0.2017.07.06.00.01-0.xamarin.1.epel7.x86_64.rpm \
|
||||
https://download.mono-project.com/repo/centos7-stable/m/msbuild/msbuild-sdkresolver-16.0+xamarinxplat.2018.09.26.17.53-0.xamarin.3.epel7.noarch.rpm \
|
||||
https://download.mono-project.com/repo/centos7-stable/n/nuget/nuget-4.7.0.5148.bin-0.xamarin.1.epel7.noarch.rpm
|
||||
|
||||
7
Dockerfile.mono-glue
Normal file
7
Dockerfile.mono-glue
Normal file
@@ -0,0 +1,7 @@
|
||||
ARG mono_version
|
||||
FROM godot-mono:${mono_version}
|
||||
ARG mono_version
|
||||
|
||||
RUN dnf -y install scons xorg-x11-server-Xvfb pkgconfig libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel libXi-devel mesa-libGL-devel alsa-lib-devel pulseaudio-libs-devel freetype-devel openssl-devel libudev-devel mesa-libGLU-devel mesa-dri-drivers && dnf clean all
|
||||
|
||||
CMD ['/bin/bash']
|
||||
26
Dockerfile.msvc
Normal file
26
Dockerfile.msvc
Normal file
@@ -0,0 +1,26 @@
|
||||
FROM godot-fedora:latest
|
||||
|
||||
ENV WINEDEBUG=-all
|
||||
RUN dnf -y install wine winetricks xorg-x11-server-Xvfb curl p7zip-plugins && dnf clean all && \
|
||||
curl -LO https://github.com/GodotBuilder/godot-builds/releases/download/_tools/angle.7z && \
|
||||
curl -LO https://www.python.org/ftp/python/3.7.2/python-3.7.2-amd64.exe && \
|
||||
xvfb-run sh -c "winetricks -q vcrun2017; wineserver -w" ;\
|
||||
xvfb-run sh -c "winetricks -q dotnet461; wineserver -w" ;\
|
||||
xvfb-run sh -c "wine /root/python-3.7.2-amd64.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0; wineserver -w" ;\
|
||||
rm /root/python-3.7.2-amd64.exe && \
|
||||
wine python -m pip install --upgrade pip ; wineserver -w ; \
|
||||
wine pip install -U setuptools ; wineserver -w ; \
|
||||
wine pip install -U wheel ; wineserver -w ; \
|
||||
wine pip install scons pywin32 ; wineserver -w ; \
|
||||
cd /root/.wine/drive_c && \
|
||||
7z x /root/angle.7z && \
|
||||
rm /root/angle.7z && \
|
||||
cd "/root/.wine/drive_c/Program Files (x86)" && \
|
||||
tar xf /root/files/msvc2017.tar && \
|
||||
cd /root && \
|
||||
bash /root/files/msvc-fixup.sh && \
|
||||
find /root/.wine -name vctip.exe -delete && \
|
||||
rm -rf /root/.wine/drive_c/users/root/Temp/* && \
|
||||
rm -rf /root/.cache
|
||||
|
||||
CMD /usr/bin/bash
|
||||
49
Dockerfile.osx
Normal file
49
Dockerfile.osx
Normal file
@@ -0,0 +1,49 @@
|
||||
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 automake autoconf bzip2-devel clang git libicu-devel libtool libxml2-devel llvm-devel make openssl-devel patch scons xz bzip2 && dnf clean all && \
|
||||
git clone https://github.com/tpoechtrager/osxcross.git && \
|
||||
cd /root/osxcross && \
|
||||
ln -s /root/files/MacOSX10.13.sdk.tar.xz /root/osxcross/tarballs && \
|
||||
UNATTENDED=1 ./build.sh ;\
|
||||
cd /root && \
|
||||
git clone https://github.com/tpoechtrager/apple-libtapi.git && \
|
||||
cd apple-libtapi && \
|
||||
INSTALLPREFIX=/root/osxcross/target ./build.sh && ./install.sh && \
|
||||
cd /root && \
|
||||
git clone https://github.com/tpoechtrager/cctools-port.git && \
|
||||
cd cctools-port/cctools/ && \
|
||||
./configure --prefix=/root/osxcross/target --target=x86_64-apple-darwin17 --with-libtapi=/root/osxcross/target && \
|
||||
make -j && make install && \
|
||||
cd /root && \
|
||||
ln -fs /root/osxcross/target/bin/x86_64-apple-darwin17-install_name_tool /root/osxcross/target/bin/install_name_tool && \
|
||||
ln -fs /root/osxcross/target/bin/x86_64-apple-darwin17-ar /root/osxcross/target/bin/ar && \
|
||||
curl https://download.mono-project.com/sources/mono/mono-${mono_version}.tar.bz2 | tar xj && \
|
||||
cd mono-${mono_version} && \
|
||||
patch -p1 < /root/files/patches/fix-mono-configure.diff && \
|
||||
export PATH=/root/osxcross/target/bin:$PATH && \
|
||||
./autogen.sh --prefix=/root/dependencies/mono \
|
||||
--build=x86_64-linux-gnu \
|
||||
--host=x86_64-apple-darwin17 \
|
||||
--disable-boehm \
|
||||
--disable-mcs-build \
|
||||
--with-tls=pthread \
|
||||
--disable-dtrace \
|
||||
mono_cv_uscore=yes \
|
||||
_lt_dar_can_shared=yes \
|
||||
CC=o64-clang \
|
||||
CXX=o64-clang++ && \
|
||||
sed -i 's/^BTLS_CMAKE_ARGS.*/BTLS_CMAKE_ARGS=-DBTLS_ARCH="x86_64" -DAPPLE=1 -DCMAKE_SYSTEM_NAME=Darwin -DCMAKE_AR:FILEPATH=ar/' mono/btls/Makefile && \
|
||||
make -j && \
|
||||
make install && \
|
||||
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 && \
|
||||
ln -sf /usr/lib/mono/* /root/dependencies/mono/lib/mono ;\
|
||||
cp -rvp /etc/mono /root/dependencies/mono/etc && \
|
||||
rm -rf /root/mono-${mono_version} /root/apple-libtapi /root/cctools-port
|
||||
|
||||
CMD ['/bin/bash']
|
||||
37
Dockerfile.ubuntu-32
Normal file
37
Dockerfile.ubuntu-32
Normal file
@@ -0,0 +1,37 @@
|
||||
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
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -y install wget && \
|
||||
wget -O- 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x1E9377A2BA9EF27F' | apt-key add - && \
|
||||
echo 'deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main' >> /etc/apt/sources.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y gcc-8 g++-8 libudev-dev libx11-dev libxcursor-dev libxrandr-dev libasound2-dev libpulse-dev \
|
||||
libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libxi-dev libxinerama-dev git scons cmake perl make bzip2 && \
|
||||
wget -O- https://download.mono-project.com/sources/mono/mono-${mono_version}.tar.bz2 | tar xj && \
|
||||
cd mono-${mono_version} && \
|
||||
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib/mono --disable-boehm --host=i386-linux-gnu CC=gcc-8 CXX=g++-8 && \
|
||||
make -j && \
|
||||
make install && \
|
||||
cert-sync /etc/ssl/certs/ca-certificates.crt && \
|
||||
wget https://download.mono-project.com/repo/ubuntu/pool/main/m/msbuild/msbuild_16.0+xamarinxplat.2018.09.26.17.53-0xamarin3+ubuntu1404b1_all.deb && \
|
||||
wget https://download.mono-project.com/repo/ubuntu/pool/main/c/core-setup/msbuild-libhostfxr_2.0.0.2017.07.06.00.01-0xamarin21+ubuntu1404b1_i386.deb && \
|
||||
wget https://download.mono-project.com/repo/ubuntu/pool/main/m/msbuild/msbuild-sdkresolver_16.0+xamarinxplat.2018.09.26.17.53-0xamarin3+ubuntu1404b1_all.deb && \
|
||||
wget https://download.mono-project.com/repo/ubuntu/pool/main/n/nuget/nuget_4.7.0.5148.bin-0xamarin2+ubuntu1404b1_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 && \
|
||||
ln -sf /usr/bin/gcc-ranlib-8 /usr/bin/gcc-ranlib && \
|
||||
ln -sf /usr/bin/gcc-ar-8 /usr/bin/gcc-ar && \
|
||||
rm -rf /root/${mono_version}
|
||||
|
||||
ENV CC=gcc-8
|
||||
ENV CXX=g++-8
|
||||
|
||||
CMD ['/bin/bash']
|
||||
37
Dockerfile.ubuntu-64
Normal file
37
Dockerfile.ubuntu-64
Normal file
@@ -0,0 +1,37 @@
|
||||
FROM ubuntu:trusty
|
||||
|
||||
ARG mono_version
|
||||
|
||||
RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mandatory!\n\n"; exit 1; fi
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -y install wget && \
|
||||
wget -O- 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x1E9377A2BA9EF27F' | apt-key add - && \
|
||||
echo 'deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main' >> /etc/apt/sources.list && \
|
||||
apt-get update && \
|
||||
apt-get install -y gcc-8 g++-8 libudev-dev libx11-dev libxcursor-dev libxrandr-dev libasound2-dev libpulse-dev \
|
||||
libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libxi-dev libxinerama-dev git scons cmake perl make bzip2 && \
|
||||
wget -O- https://download.mono-project.com/sources/mono/mono-${mono_version}.tar.bz2 | tar xj && \
|
||||
cd mono-${mono_version} && \
|
||||
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib/mono --disable-boehm --host=x86_64-linux-gnu CC=gcc-8 CXX=g++-8 && \
|
||||
make -j && \
|
||||
make install && \
|
||||
cert-sync /etc/ssl/certs/ca-certificates.crt && \
|
||||
wget https://download.mono-project.com/repo/ubuntu/pool/main/m/msbuild/msbuild_16.0+xamarinxplat.2018.09.26.17.53-0xamarin3+ubuntu1404b1_all.deb && \
|
||||
wget https://download.mono-project.com/repo/ubuntu/pool/main/c/core-setup/msbuild-libhostfxr_2.0.0.2017.07.06.00.01-0xamarin21+ubuntu1404b1_amd64.deb && \
|
||||
wget https://download.mono-project.com/repo/ubuntu/pool/main/m/msbuild/msbuild-sdkresolver_16.0+xamarinxplat.2018.09.26.17.53-0xamarin3+ubuntu1404b1_all.deb && \
|
||||
wget https://download.mono-project.com/repo/ubuntu/pool/main/n/nuget/nuget_4.7.0.5148.bin-0xamarin2+ubuntu1404b1_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 && \
|
||||
ln -sf /usr/bin/gcc-ranlib-8 /usr/bin/gcc-ranlib && \
|
||||
ln -sf /usr/bin/gcc-ar-8 /usr/bin/gcc-ar && \
|
||||
rm -rf /root/${mono_version}
|
||||
|
||||
ENV CC=gcc-8
|
||||
ENV CXX=g++-8
|
||||
|
||||
CMD ['/bin/bash']
|
||||
32
Dockerfile.windows
Normal file
32
Dockerfile.windows
Normal file
@@ -0,0 +1,32 @@
|
||||
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 scons mingw32-gcc mingw32-gcc-c++ mingw32-winpthreads-static mingw64-gcc mingw64-gcc-c++ mingw64-winpthreads-static && dnf clean all && \
|
||||
curl https://download.mono-project.com/sources/mono/mono-${mono_version}.tar.bz2 | tar xj && \
|
||||
cd mono-${mono_version} && \
|
||||
./configure --prefix=/root/dependencies/mono-64 --host=x86_64-w64-mingw32 --disable-boehm --disable-mcs-build && \
|
||||
make -j && \
|
||||
make install && \
|
||||
make distclean && \
|
||||
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 && \
|
||||
./configure --prefix=/root/dependencies/mono-32 --host=i686-w64-mingw32 --disable-boehm --disable-mcs-build && \
|
||||
make -j && \
|
||||
make install && \
|
||||
make distclean && \
|
||||
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 && \
|
||||
rm -rf /root/mono-${mono_version}
|
||||
|
||||
CMD ['/bin/bash']
|
||||
37
Dockerfile.xcode
Normal file
37
Dockerfile.xcode
Normal file
@@ -0,0 +1,37 @@
|
||||
FROM godot-fedora:latest
|
||||
|
||||
RUN dnf -y install autoconf automake libtool clang cmake fuse fuse-devel git patch make libxml2-devel libicu-devel compat-openssl10-devel bzip2-devel kmod xz cpio && \
|
||||
git clone https://github.com/mackyle/xar.git && \
|
||||
cd xar/xar && \
|
||||
./autogen.sh --prefix=/usr && \
|
||||
make -j && make install && \
|
||||
cd /root && \
|
||||
git clone https://github.com/NiklasRosenstein/pbzx && \
|
||||
cd pbzx && \
|
||||
clang -O3 -llzma -lxar -I /usr/local/include pbzx.c -o pbzx
|
||||
|
||||
CMD mkdir -p /root/xcode && \
|
||||
cd /root/xcode && \
|
||||
xar -xf /root/files/Xcode_9.2.xip && \
|
||||
/root/pbzx/pbzx -n Content | cpio -i && \
|
||||
cp -r Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk /tmp/MacOSX10.13.sdk && \
|
||||
cp -r Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 /tmp/MacOSX10.13.sdk/usr/include/c++ && \
|
||||
mkdir -p mkdir -p /tmp/MacOSX10.13.sdk/usr/share/man && \
|
||||
cp -rf Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man/man1 \
|
||||
Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man/man3 \
|
||||
Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man/man5 /tmp/MacOSX10.13.sdk/usr/share/man && \
|
||||
cd /tmp && \
|
||||
tar -cJf /root/files/MacOSX10.13.sdk.tar.xz MacOSX10.13.sdk && \
|
||||
rm -rf MacOSX10.13 && \
|
||||
cd /root/xcode && \
|
||||
cp -r Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk /tmp/iPhoneOS11.2.sdk && \
|
||||
cp -r Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 /tmp/iPhoneOS11.2.sdk/usr/include/c++ && \
|
||||
cd /tmp && \
|
||||
tar -cJf /root/files/iPhoneOS11.2.sdk.tar.xz iPhoneOS11.2.sdk && \
|
||||
rm -rf iPhoneOS11.2.sdk && \
|
||||
cd /root/xcode && \
|
||||
cp -r Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk /tmp/iPhoneOS11.2.sdk && \
|
||||
cp -r Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 /tmp/iPhoneOS11.2.sdk/usr/include/c++ && \
|
||||
cd /tmp && \
|
||||
tar -cJf /root/files/iPhoneSimulator11.2.sdk.tar.xz iPhoneOS11.2.sdk
|
||||
|
||||
8
README.md
Normal file
8
README.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# Godot engine build containers
|
||||
|
||||
This repository contains the Dockerfiles for the official Godot engine builds. These containers should help you build Godot for all platforms supported on any machine that can run Docker containers.
|
||||
|
||||
## Building
|
||||
|
||||
There is a 'build.sh' script included to build the containers themselves. The in-container build scripts will follow shortly.
|
||||
|
||||
50
build.sh
Normal file
50
build.sh
Normal file
@@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
podman=podman
|
||||
if ! which $podman; then
|
||||
podman=docker
|
||||
fi
|
||||
|
||||
mono_version=$1
|
||||
|
||||
$podman build -t godot-fedora:latest -f Dockerfile.base
|
||||
|
||||
$podman build --build-arg mono_version=${mono_version} -t godot-mono:${mono_version} -f Dockerfile.mono
|
||||
$podman build --build-arg mono_version=${mono_version} -t godot-mono-glue:latest -f Dockerfile.mono-glue
|
||||
$podman build --build-arg mono_version=${mono_version} -t godot-windows:latest -f Dockerfile.windows
|
||||
$podman build --build-arg mono_version=${mono_version} -t godot-ubuntu-32:latest -f Dockerfile.ubuntu-32
|
||||
$podman build --build-arg mono_version=${mono_version} -t godot-ubuntu-64:latest -f Dockerfile.ubuntu-64
|
||||
|
||||
$podman build -t godot-android:latest -f Dockerfile.android
|
||||
$podman build -t godot-javascript:latest -f Dockerfile.javascript
|
||||
|
||||
$podman build -t godot-xcode-packer:latest -f Dockerfile.xcode -v $(pwd)/files:/root/files
|
||||
|
||||
if [ ! -e files/MacOSX10.13.sdk.tar.xz ] || [ ! -e files/iPhoneOS11.2.sdk.tar.xz ] || [ ! -e files/iPhoneSimulator11.2.sdk.tar.xz ]; then
|
||||
if [ ! -e files/Xcode_9.2.xip ]; then
|
||||
echo "files/Xcode_9.2.xip is required. It can be downloaded from https://developer.apple.com/download/more/ with a valid apple ID"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Building OSX and iOS SDK packages. This will take a while"
|
||||
$podman run -it --rm -v $(pwd)/files:/root/files godot-xcode-packer:latest
|
||||
fi
|
||||
|
||||
$podman build -t godot-ios:latest -f Dockerfile.ios -v $(pwd)/files:/root/files
|
||||
$podman build --build-arg mono_version=${mono_version} -t godot-osx:latest -f Dockerfile.osx -v $(pwd)/files:/root/files
|
||||
|
||||
if [ ! -e files/msvc2017.tar ]; then
|
||||
echo
|
||||
echo "files/msvc2017.tar is missing. This file can be created on a Windows 7 or 10 machine by downloading the 'Visual Studio Tools' installer."
|
||||
echo "here: https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2017"
|
||||
echo "The required components can be installed by running"
|
||||
echo "vs_buildtools.exe --add Microsoft.VisualStudio.Workload.UniversalBuildTools --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.Windows10SDK.16299.Desktop --add Microsoft.VisualStudio.Component.Windows10SDK.16299.UWP.Native --passive"
|
||||
echo "after that create a zipfile of C:/Program Files (x86)/Microsoft Visual Studio"
|
||||
echo "tar -cf msvs.tar -C \"c:/Program Files (x86)\" Microsoft Visual Studio"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$podman build -t godot-msvc:latest -f Dockerfile.msvc -v $(pwd)/files:/root/files
|
||||
24
files/msvc-fixup.sh
Normal file
24
files/msvc-fixup.sh
Normal file
@@ -0,0 +1,24 @@
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/msobj140.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/arm/
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/msobj140.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x86/
|
||||
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/mspdbcore.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/arm/
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/mspdbcore.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x86/
|
||||
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/mspdb140.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/mspdb140.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/arm/
|
||||
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/msobj140.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/msobj140.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/arm/
|
||||
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/mspdbcore.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/mspdbcore.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/arm/
|
||||
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/mspdbsrv.exe /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/mspdbsrv.exe /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx86/arm/
|
||||
|
||||
cp /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/msvcdis140.dll /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/arm/
|
||||
|
||||
pushd /root/.wine/drive_c/Program\ Files\ \(x86\)/Microsoft\ SDKs/
|
||||
rm -rf ClickOnce\ Bootstrapper/ Portable/ Windows NuGetPackages/ UWPNuGetPackages/
|
||||
popd
|
||||
|
||||
27
files/patches/fix-fuse-check.diff
Normal file
27
files/patches/fix-fuse-check.diff
Normal file
@@ -0,0 +1,27 @@
|
||||
diff -u a/tools/gen_sdk_package_darling_dmg.sh b/tools/gen_sdk_package_darling_dmg.sh
|
||||
--- a/tools/gen_sdk_package_darling_dmg.sh 2018-12-20 16:06:04.744507679 +0000
|
||||
+++ b/tools/gen_sdk_package_darling_dmg.sh 2018-12-20 16:06:39.000379232 +0000
|
||||
@@ -33,22 +33,6 @@
|
||||
[ -n "$CC" ] && require $CC
|
||||
[ -n "$CXX" ] && require $CXX
|
||||
|
||||
-set +e
|
||||
-
|
||||
-command -v lsb_release 2>&1 > /dev/null
|
||||
-
|
||||
-if [[ $? -eq 0 ]] && [[ -n $(lsb_release -a 2>&1 | grep -i ubuntu) ]]; then
|
||||
- echo "Using ubuntu, skipping fuse module check"
|
||||
-else
|
||||
- modinfo fuse &>/dev/null
|
||||
-fi
|
||||
-
|
||||
-if [ $? -ne 0 ]; then
|
||||
- echo "Required kernel module 'fuse' not loaded" 1>&2
|
||||
- echo "Please run 'insmod fuse' as root" 1>&2
|
||||
- exit 1
|
||||
-fi
|
||||
-
|
||||
set -e
|
||||
|
||||
pushd $BUILD_DIR &>/dev/null
|
||||
|
||||
12
files/patches/fix-mono-configure.diff
Normal file
12
files/patches/fix-mono-configure.diff
Normal file
@@ -0,0 +1,12 @@
|
||||
--- a/configure.ac 2018-12-21 00:49:33.868510477 +0100
|
||||
+++ b/configure.ac 2018-12-21 00:50:16.784397647 +0100
|
||||
@@ -3172,6 +3172,8 @@
|
||||
AC_MSG_CHECKING(for shm_open that works well enough with mmap)
|
||||
if test "x$ac_cv_func_shm_open" = "xno" -o "x$ac_cv_func_shm_open_working_with_mmap" = "xno" ; then
|
||||
AC_MSG_RESULT(no)
|
||||
+ elif test "x$cross_compiling" = "xyes"; then
|
||||
+ AC_MSG_RESULT(cross compiling, assuming yes)
|
||||
else
|
||||
AC_TRY_RUN([
|
||||
#include <sys/mman.h>
|
||||
|
||||
26
upload.sh
Normal file
26
upload.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
podman=podman
|
||||
if ! which $podman; then
|
||||
podman=docker
|
||||
fi
|
||||
|
||||
registry=$1
|
||||
|
||||
if [ -z "${registry}" ]; then
|
||||
registry=registry.prehensile-tales.com
|
||||
fi
|
||||
|
||||
$podman push godot-mono-glue:latest ${registry}/godot/mono-glue
|
||||
$podman push godot-windows:latest ${registry}/godot/windows
|
||||
$podman push godot-ubuntu-32:latest ${registry}/godot/ubuntu-32
|
||||
$podman push godot-ubuntu-64:latest ${registry}/godot/ubuntu-64
|
||||
$podman push godot-javascript:latest ${registry}/godot/javascript
|
||||
$podman push godot-xcode-packer:latest ${registry}/godot/xcode-packer
|
||||
|
||||
$podman push godot-android:latest ${registry}/godot-private/android
|
||||
$podman push godot-ios:latest ${registry}/godot-private/ios
|
||||
$podman push godot-osx:latest ${registry}/godot-private/macosx
|
||||
$podman push godot-msvc:latest ${registry}/godot-private/uwp
|
||||
Reference in New Issue
Block a user