mirror of
https://github.com/godotengine/godot-build-scripts.git
synced 2026-01-04 02:09:44 +03:00
The in-container build scripts now get passed CLASSICAL and MONO env variables which can be used to build one or the other, or both (default). `build.sh`, `build-release.sh` and `build-templates.sh` now all expect command line switches to specify the version details, and optionally which flavor to build. For example to build Mono only: ./build.sh -v 3.2-beta4 -g master -b mono ./build-release.sh -v 3.2-beta4 -b mono ./build-templates.sh -v 3.2-beta4 -t 3.2.beta4 -b mono Also took the opportunity to do some extra cleanup, like removing unnecessary `builtin_*` options since they all default to True, even for Linux in 3.2, as well as `use_lto` and `use_static_cpp` options on platforms which don't implement them. And I improved the `build-release.sh` script to be a bit easier to read, and avoid having too many stray folders to cleanup. The build scripts should now generate the final structure that we'd use on the official mirrors, with the `mono` distribution as a subfolder of the main release folder.
79 lines
3.2 KiB
Bash
Executable File
79 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
# Config
|
|
|
|
export BUILD_NAME=official
|
|
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
|
export OPTIONS="debug_symbols=no"
|
|
export OPTIONS_MONO="module_mono_enabled=yes mono_static=no"
|
|
export TERM=xterm
|
|
|
|
rm -rf godot
|
|
mkdir godot
|
|
cd godot
|
|
tar xf /root/godot.tar.gz --strip-components=1
|
|
|
|
# Classical
|
|
|
|
if [ "${CLASSICAL}" == "1" ]; then
|
|
echo "Starting classical build for Android..."
|
|
|
|
$SCONS platform=android android_arch=armv7 $OPTIONS tools=no target=release_debug
|
|
$SCONS platform=android android_arch=armv7 $OPTIONS tools=no target=release
|
|
|
|
$SCONS platform=android android_arch=arm64v8 $OPTIONS tools=no target=release_debug
|
|
$SCONS platform=android android_arch=arm64v8 $OPTIONS tools=no target=release
|
|
|
|
$SCONS platform=android android_arch=x86 $OPTIONS tools=no target=release_debug
|
|
$SCONS platform=android android_arch=x86 $OPTIONS tools=no target=release
|
|
|
|
$SCONS platform=android android_arch=x86_64 $OPTIONS tools=no target=release_debug
|
|
$SCONS platform=android android_arch=x86_64 $OPTIONS tools=no target=release
|
|
|
|
pushd platform/android/java
|
|
./gradlew generateGodotTemplates
|
|
popd
|
|
|
|
mkdir -p /root/out/templates
|
|
cp bin/android_source.zip /root/out/templates
|
|
cp bin/android_debug.apk /root/out/templates/android_debug.apk
|
|
cp bin/android_release.apk /root/out/templates/android_release.apk
|
|
fi
|
|
|
|
# Mono
|
|
|
|
if [ "${MONO}" == "1" ]; then
|
|
echo "Starting Mono build for Android..."
|
|
|
|
cp /root/mono-glue/*.cpp modules/mono/glue/
|
|
cp -r /root/mono-glue/Managed/Generated modules/mono/glue/Managed/
|
|
|
|
$SCONS platform=android android_arch=armv7 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-armeabi-v7a-release tools=no target=release_debug
|
|
$SCONS platform=android android_arch=armv7 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-armeabi-v7a-release tools=no target=release
|
|
|
|
$SCONS platform=android android_arch=arm64v8 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-arm64-v8a-release tools=no target=release_debug
|
|
$SCONS platform=android android_arch=arm64v8 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-arm64-v8a-release tools=no target=release
|
|
|
|
$SCONS platform=android android_arch=x86 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-x86-release tools=no target=release_debug
|
|
$SCONS platform=android android_arch=x86 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-x86-release tools=no target=release
|
|
|
|
$SCONS platform=android android_arch=x86_64 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-x86_64-release tools=no target=release_debug
|
|
$SCONS platform=android android_arch=x86_64 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-x86_64-release tools=no target=release
|
|
|
|
pushd platform/android/java
|
|
./gradlew generateGodotTemplates
|
|
popd
|
|
|
|
mkdir -p /root/out/templates-mono
|
|
cp bin/android_source.zip /root/out/templates-mono
|
|
cp bin/android_debug.apk /root/out/templates-mono/android_debug.apk
|
|
cp bin/android_release.apk /root/out/templates-mono/android_release.apk
|
|
|
|
mkdir /root/out/templates-mono/bcl
|
|
cp -r /root/mono-installs/android-bcl/monodroid /root/out/templates-mono/bcl/
|
|
fi
|
|
|
|
echo "Android build successful"
|