#!/bin/bash set -e if [ -z $1 ]; then echo "Usage: $0 <mono version" exit 1 fi MONO_VERSION=$1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF sudo apt-get install -y apt-transport-https echo "deb https://download.mono-project.com/repo/ubuntu trusty/snapshots/${MONO_VERSION} main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list if [ ! -e /etc/apt/sources.list.d/ubuntu-toolchain-r-test-trusty.list ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test fi sudo apt-get update -qq sudo apt-get -y upgrade sudo 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 mono-complete msbuild sudo apt-get remove -y yasm export BUILD_NAME=official export OPTIONS="builtin_libpng=yes builtin_openssl=yes builtin_zlib=yes gdnative_wrapper=yes debug_symbols=no" export SCONS="scons -j8 verbose=no warnings=no progress=no" export CC="gcc-8" export CXX="g++-8" export TERM=xterm export MONO64_PREFIX=/usr/ export MONO32_PREFIX=/usr/ rm -rf godot git clone https://github.com/godotengine/godot.git cd godot git config --global user.email "you@example.com" git config --global user.name "Your Name" git checkout -b 3.0 origin/3.0 git branch --set-upstream-to=origin/3.0 3.0 git reset --hard git pull cp ../mono-glue/* modules/mono/glue $SCONS platform=x11 CC=$CC CXX=$CXX $OPTIONS tools=yes target=release_debug use_static_cpp=yes $SCONS platform=x11 CC=$CC CXX=$CXX $OPTIONS tools=no target=release_debug use_static_cpp=yes $SCONS platform=x11 CC=$CC CXX=$CXX $OPTIONS tools=no target=release use_static_cpp=yes $SCONS platform=x11 CC=$CC CXX=$CXX $OPTIONS tools=yes target=release_debug use_static_cpp=yes module_mono_enabled=yes mono_static=yes $SCONS platform=x11 CC=$CC CXX=$CXX $OPTIONS tools=no target=release_debug use_static_cpp=yes module_mono_enabled=yes mono_static=yes $SCONS platform=x11 CC=$CC CXX=$CXX $OPTIONS tools=no target=release use_static_cpp=yes module_mono_enabled=yes mono_static=yes