mirror of
https://github.com/godotengine/godot-build-scripts.git
synced 2026-01-01 09:48:47 +03:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aca4c84831 | ||
|
|
5cbd6f9d3a |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,6 +1,5 @@
|
||||
# User-specific configuration and signing key
|
||||
config.sh
|
||||
*.jks
|
||||
*.pfx
|
||||
*.pkcs12
|
||||
|
||||
|
||||
@@ -14,23 +14,14 @@ mkdir godot
|
||||
cd godot
|
||||
tar xf /root/godot.tar.gz --strip-components=1
|
||||
|
||||
dnf install -y java-11-openjdk-devel
|
||||
java --version
|
||||
|
||||
# Classical
|
||||
|
||||
if [ "${CLASSICAL}" == "1" ]; then
|
||||
echo "Starting classical build for Android..."
|
||||
|
||||
$SCONS platform=android android_arch=armv7 $OPTIONS tools=yes target=release_debug
|
||||
$SCONS platform=android android_arch=arm64v8 $OPTIONS tools=yes target=release_debug
|
||||
$SCONS platform=android android_arch=x86 $OPTIONS tools=yes target=release_debug
|
||||
$SCONS platform=android android_arch=x86_64 $OPTIONS tools=yes target=release_debug
|
||||
|
||||
pushd platform/android/java
|
||||
./gradlew generateGodotEditor
|
||||
popd
|
||||
|
||||
mkdir -p /root/out/tools
|
||||
cp bin/android_editor.apk /root/out/tools/
|
||||
|
||||
$SCONS platform=android android_arch=armv7 $OPTIONS tools=no target=release_debug
|
||||
$SCONS platform=android android_arch=armv7 $OPTIONS tools=no target=release
|
||||
|
||||
@@ -48,10 +39,10 @@ if [ "${CLASSICAL}" == "1" ]; then
|
||||
popd
|
||||
|
||||
mkdir -p /root/out/templates
|
||||
cp bin/android_source.zip /root/out/templates/
|
||||
cp bin/android_debug.apk /root/out/templates/
|
||||
cp bin/android_release.apk /root/out/templates/
|
||||
cp bin/godot-lib.release.aar /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
|
||||
cp bin/godot-lib.release.aar /root/out/templates/godot-lib.release.aar
|
||||
fi
|
||||
|
||||
# Mono
|
||||
@@ -61,12 +52,13 @@ if [ "${MONO}" == "1" ]; then
|
||||
|
||||
cp /root/mono-glue/*.cpp modules/mono/glue/
|
||||
cp -r /root/mono-glue/GodotSharp/GodotSharp/Generated modules/mono/glue/GodotSharp/GodotSharp/
|
||||
cp -r /root/mono-glue/GodotSharp/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
||||
|
||||
$SCONS platform=android android_arch=armv7 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-armv7-release tools=no target=release_debug
|
||||
$SCONS platform=android android_arch=armv7 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-armv7-release tools=no target=release
|
||||
$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-arm64v8-release tools=no target=release_debug
|
||||
$SCONS platform=android android_arch=arm64v8 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-arm64v8-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
|
||||
@@ -79,10 +71,10 @@ if [ "${MONO}" == "1" ]; then
|
||||
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/
|
||||
cp bin/android_release.apk /root/out/templates-mono/
|
||||
cp bin/godot-lib.release.aar /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
|
||||
cp bin/godot-lib.release.aar /root/out/templates-mono/godot-lib.release.aar
|
||||
|
||||
mkdir -p /root/out/templates-mono/bcl
|
||||
cp -r /root/mono-installs/android-bcl/* /root/out/templates-mono/bcl/
|
||||
|
||||
@@ -11,7 +11,7 @@ export OPTIONS="production=yes use_lto=no"
|
||||
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes"
|
||||
export TERM=xterm
|
||||
|
||||
export IOS_SDK="15.4"
|
||||
export IOS_SDK="14.4"
|
||||
export IOS_LIPO="/root/ioscross/arm64/bin/arm-apple-darwin11-lipo"
|
||||
|
||||
rm -rf godot
|
||||
|
||||
@@ -5,11 +5,11 @@ set -e
|
||||
# Config
|
||||
|
||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
||||
export OPTIONS="osxcross_sdk=darwin21.4 production=yes"
|
||||
export OPTIONS="osxcross_sdk=darwin20.2 production=yes"
|
||||
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes"
|
||||
export MONO_PREFIX_X86_64="/root/mono-installs/desktop-osx-x86_64-release"
|
||||
export MONO_PREFIX_ARM64="/root/mono-installs/desktop-osx-arm64-release"
|
||||
export STRIP="x86_64-apple-darwin21.4-strip -u -r"
|
||||
export STRIP="x86_64-apple-darwin20.2-strip -u -r"
|
||||
export TERM=xterm
|
||||
|
||||
rm -rf godot
|
||||
@@ -71,7 +71,8 @@ if [ "${MONO}" == "1" ]; then
|
||||
# Make universal versions of the dylibs we use.
|
||||
lipo -create tmp-lib/x86_64/libmono-native-compat.dylib tmp-lib/arm64/libmono-native.dylib -output tmp-lib/libmono-native.dylib
|
||||
lipo -create tmp-lib/x86_64/libMonoPosixHelper.dylib tmp-lib/arm64/libMonoPosixHelper.dylib -output tmp-lib/libMonoPosixHelper.dylib
|
||||
lipo -create tmp-lib/x86_64/libmono-btls-shared.dylib tmp-lib/arm64/libmono-btls-shared.dylib -output tmp-lib/libmono-btls-shared.dylib
|
||||
# Somehow only included in x86_64 build.
|
||||
cp tmp-lib/x86_64/libmono-btls-shared.dylib tmp-lib/
|
||||
|
||||
cp -f tmp-lib/*.dylib bin/GodotSharp/Mono/lib/
|
||||
|
||||
|
||||
@@ -49,11 +49,12 @@ sign_macos() {
|
||||
-s ${OSX_KEY_ID} -v ${_extra_files} ${_appname} && \
|
||||
zip -r ${_binname}_signed.zip ${_appname}"
|
||||
|
||||
_request_uuid=$(ssh "${OSX_HOST}" "xcrun notarytool submit ${_osx_tmpdir}/${_binname}_signed.zip --team-id \"${APPLE_TEAM}\" --apple-id \"${APPLE_ID}\" --password \"${APPLE_ID_PASSWORD}\" --no-progress --output-format json")
|
||||
_request_uuid=$(echo ${_request_uuid} | sed -e 's/.*"id":"\([^"]*\)".*/\1/')
|
||||
if ! ssh "${OSX_HOST}" "xcrun notarytool wait ${_request_uuid} --team-id \"${APPLE_TEAM}\" --apple-id \"${APPLE_ID}\" --password \"${APPLE_ID_PASSWORD}\" | grep -q status:\ Accepted"; then
|
||||
_request_uuid=$(ssh "${OSX_HOST}" "xcrun altool --notarize-app --primary-bundle-id \"${OSX_BUNDLE_ID}\" --username \"${APPLE_ID}\" --password \"${APPLE_ID_PASSWORD}\" --file ${_osx_tmpdir}/${_binname}_signed.zip")
|
||||
_request_uuid=$(echo ${_request_uuid} | sed -e 's/.*RequestUUID = //')
|
||||
ssh "${OSX_HOST}" "while xcrun altool --notarization-info ${_request_uuid} -u \"${APPLE_ID}\" -p \"${APPLE_ID_PASSWORD}\" | grep -q Status:\ in\ progress; do echo Waiting on Apple notarization...; sleep 30s; done"
|
||||
if ! ssh "${OSX_HOST}" "xcrun altool --notarization-info ${_request_uuid} -u \"${APPLE_ID}\" -p \"${APPLE_ID_PASSWORD}\" | grep -q Status:\ success"; then
|
||||
echo "Notarization failed."
|
||||
_notarization_log=$(ssh "${OSX_HOST}" "xcrun notarytool log ${_request_uuid} --team-id \"${APPLE_TEAM}\" --apple-id \"${APPLE_ID}\" --password \"${APPLE_ID_PASSWORD}\"")
|
||||
_notarization_log=$(ssh "${OSX_HOST}" "xcrun altool --notarization-info ${_request_uuid} -u \"${APPLE_ID}\" -p \"${APPLE_ID_PASSWORD}\"")
|
||||
echo "${_notarization_log}"
|
||||
ssh "${OSX_HOST}" "rm -rf ${_osx_tmpdir}"
|
||||
exit 1
|
||||
@@ -191,26 +192,18 @@ if [ "${build_classical}" == "1" ]; then
|
||||
|
||||
# Editor
|
||||
binname="${godot_basename}_win64.exe"
|
||||
batname="${godot_basename}_win64_console.cmd"
|
||||
cp out/windows/x64/tools/godot.windows.opt.tools.64.exe ${binname}
|
||||
strip ${binname}
|
||||
sign_windows ${binname}
|
||||
echo "@echo off" > ${batname}
|
||||
echo ${binname} >> ${batname}
|
||||
echo "pause > nul" >> ${batname}
|
||||
zip -q -9 "${reldir}/${binname}.zip" ${binname} ${batname}
|
||||
rm ${binname} ${batname}
|
||||
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
||||
rm ${binname}
|
||||
|
||||
binname="${godot_basename}_win32.exe"
|
||||
batname="${godot_basename}_win32_console.cmd"
|
||||
cp out/windows/x86/tools/godot.windows.opt.tools.32.exe ${binname}
|
||||
strip ${binname}
|
||||
sign_windows ${binname}
|
||||
echo "@echo off" > ${batname}
|
||||
echo ${binname} >> ${batname}
|
||||
echo "pause > nul" >> ${batname}
|
||||
zip -q -9 "${reldir}/${binname}.zip" ${binname} ${batname}
|
||||
rm ${binname} ${batname}
|
||||
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
||||
rm ${binname}
|
||||
|
||||
# Templates
|
||||
cp out/windows/x64/templates/godot.windows.opt.64.exe ${templatesdir}/windows_64_release.exe
|
||||
@@ -283,10 +276,6 @@ if [ "${build_classical}" == "1" ]; then
|
||||
# Lib for direct download
|
||||
cp out/android/templates/godot-lib.release.aar ${reldir}/godot-lib.${templates_version}.release.aar
|
||||
|
||||
# Editor
|
||||
binname="${godot_basename}_android_editor.apk"
|
||||
cp out/android/tools/android_editor.apk ${reldir}/${binname}
|
||||
|
||||
# Templates
|
||||
cp out/android/templates/*.apk ${templatesdir}/
|
||||
cp out/android/templates/android_source.zip ${templatesdir}/
|
||||
@@ -306,19 +295,19 @@ if [ "${build_classical}" == "1" ]; then
|
||||
|
||||
## UWP (Classical) ##
|
||||
|
||||
if [ ! -d "deps/angle-uwp" ]; then
|
||||
echo "Downloading ANGLE binaries from https://github.com/godotengine/godot-build-scripts/releases/tag/_deps/"
|
||||
if [ ! -d "deps/angle" ]; then
|
||||
echo "Downloading ANGLE binaries from https://github.com/GodotBuilder/godot-builds/releases/tag/_tools"
|
||||
mkdir -p deps && cd deps
|
||||
curl -L -o angle-uwp.7z https://github.com/godotengine/godot-build-scripts/releases/download/_deps/angle-uwp-2.1.13.7z
|
||||
7z x angle-uwp.7z && rm -f angle-uwp.7z
|
||||
curl -LO https://github.com/GodotBuilder/godot-builds/releases/download/_tools/angle.7z
|
||||
7z x angle.7z && rm -f angle.7z
|
||||
cd ..
|
||||
fi
|
||||
|
||||
rm -rf uwp_template_*
|
||||
for arch in ARM Win32 x64; do
|
||||
cp -r git/misc/dist/uwp_template uwp_template_${arch}
|
||||
cp deps/angle-uwp/${arch}/libEGL.dll \
|
||||
deps/angle-uwp/${arch}/libGLESv2.dll \
|
||||
cp deps/angle/winrt/10/src/Release_${arch}/libEGL.dll \
|
||||
deps/angle/winrt/10/src/Release_${arch}/libGLESv2.dll \
|
||||
uwp_template_${arch}/
|
||||
cp -r uwp_template_${arch} uwp_template_${arch}_debug
|
||||
done
|
||||
@@ -399,32 +388,22 @@ if [ "${build_mono}" == "1" ]; then
|
||||
|
||||
# Editor
|
||||
binname="${godot_basename}_mono_win64"
|
||||
batname="${godot_basename}_mono_win64_console.cmd"
|
||||
mkdir -p ${binname}
|
||||
cp out/windows/x64/tools-mono/godot.windows.opt.tools.64.mono.exe ${binname}/${binname}.exe
|
||||
strip ${binname}/${binname}.exe
|
||||
sign_windows ${binname}/${binname}.exe
|
||||
cp -rp out/windows/x64/tools-mono/GodotSharp ${binname}/
|
||||
cp -rp out/aot-compilers ${binname}/GodotSharp/Tools/
|
||||
echo "@echo off" > ${batname}
|
||||
echo ${binname}.exe >> ${batname}
|
||||
echo "pause > nul" >> ${batname}
|
||||
mv ${batname} ${binname}/
|
||||
zip -r -q -9 "${reldir_mono}/${binname}.zip" ${binname}
|
||||
rm -rf ${binname}
|
||||
|
||||
binname="${godot_basename}_mono_win32"
|
||||
batname="${godot_basename}_mono_win32_console.cmd"
|
||||
mkdir -p ${binname}
|
||||
cp out/windows/x86/tools-mono/godot.windows.opt.tools.32.mono.exe ${binname}/${binname}.exe
|
||||
strip ${binname}/${binname}.exe
|
||||
sign_windows ${binname}/${binname}.exe
|
||||
cp -rp out/windows/x86/tools-mono/GodotSharp ${binname}/
|
||||
cp -rp out/aot-compilers ${binname}/GodotSharp/Tools/
|
||||
echo "@echo off" > ${batname}
|
||||
echo ${binname}.exe >> ${batname}
|
||||
echo "pause > nul" >> ${batname}
|
||||
mv ${batname} ${binname}/
|
||||
zip -r -q -9 "${reldir_mono}/${binname}.zip" ${binname}
|
||||
rm -rf ${binname}
|
||||
|
||||
@@ -502,10 +481,6 @@ if [ "${build_mono}" == "1" ]; then
|
||||
# Lib for direct download
|
||||
cp out/android/templates-mono/godot-lib.release.aar ${reldir_mono}/godot-lib.${templates_version}.mono.release.aar
|
||||
|
||||
# Editor
|
||||
#binname="${godot_basename}_mono_android_editor.apk"
|
||||
#cp out/android/tools-mono/android_editor.apk ${reldir_mono}/${binname}
|
||||
|
||||
# Templates
|
||||
cp out/android/templates-mono/*.apk ${templatesdir_mono}/
|
||||
cp out/android/templates-mono/android_source.zip ${templatesdir_mono}/
|
||||
|
||||
2
build.sh
2
build.sh
@@ -177,7 +177,7 @@ mkdir -p ${basedir}/out
|
||||
mkdir -p ${basedir}/out/logs
|
||||
|
||||
export podman_run="${podman} run -it --rm --env BUILD_NAME --env GODOT_VERSION_STATUS --env NUM_CORES --env CLASSICAL=${build_classical} --env MONO=${build_mono} -v ${basedir}/godot-${godot_version}.tar.gz:/root/godot.tar.gz -v ${basedir}/mono-glue:/root/mono-glue -w /root/"
|
||||
export img_version=3.x-f36-mono-6.12.0.182
|
||||
export img_version=3.x-mono-6.12.0.158
|
||||
|
||||
# Get AOT compilers from their containers.
|
||||
mkdir -p ${basedir}/out/aot-compilers
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
rm -rf releases tmp web
|
||||
4
clean.sh
4
clean.sh
@@ -1,4 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
rm -rf godot*.tar.gz mono-glue out releases tmp web
|
||||
git status
|
||||
@@ -38,7 +38,7 @@ export OSX_HOST=""
|
||||
export OSX_KEY_ID=""
|
||||
# Bundle id for the signed app
|
||||
export OSX_BUNDLE_ID=""
|
||||
# Username/password for Apple's signing APIs (used for notarytool)
|
||||
export APPLE_TEAM=""
|
||||
# Username/password for Apple's signing APIs (used for atltool)
|
||||
export APPLE_ID=""
|
||||
export APPLE_ID_PASSWORD=""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user