19 Commits
4.5 ... main

Author SHA1 Message Date
Rémi Verschelde
d7733c2cff Apple: Update build script for Xcode 26.1.1 SDKs (#144)
Follow-up to https://github.com/godotengine/build-containers/pull/159.
2025-12-19 15:59:51 +01:00
Rémi Verschelde
9fb0561da5 Windows: Update ANGLE downloads for MinGW CRT 13.0.0
See notes in https://github.com/godotengine/godot-angle-static/releases/chromium%2F7578/
and https://github.com/godotengine/build-containers/pull/159.

We use Fedora 43 with MinGW 13.0.0 for 4.6.
2025-12-16 18:25:07 +01:00
bruvzg
5261d2c468 Windows: Update Mesa NIR builds to 25.3.1-1 (#142) 2025-12-16 11:15:20 +01:00
bruvzg
a4a1b3eb57 Update Angle to chromium/7578 (#141) 2025-12-15 19:19:11 +01:00
bruvzg
0f49d35593 Update access-kit to 0.18.0 (#140) 2025-12-15 16:52:50 +01:00
Thaddeus Crews
78b0fcbbcd Merge pull request #139 from godotengine/mesa-nir-25.3.1
Windows: Update Mesa NIR builds to 25.3.1
2025-12-12 14:24:02 -06:00
Rémi Verschelde
a030eb84da Windows: Update Mesa NIR builds to 25.3.1 2025-12-12 16:21:00 +01:00
David Snopek
7dca209db6 Automate publishing Android editor to Meta Horizon store (#138) 2025-12-12 15:02:26 +01:00
Rémi Verschelde
8a943c3f00 Add support for experimental .NET builds (GDExtension) (#136)
This is eventually meant to be unified with the "classical" builds,
but for the initial testing we start with a dedicated "dotnet" build.

Co-authored-by: Raul Santos <raulsntos@gmail.com>
2025-12-02 10:15:49 +01:00
Rémi Verschelde
7126657c58 Windows: Update godot-nir-static to 23.1.9-2 (#137)
Companion PR to:
- https://github.com/godotengine/godot-nir-static/pull/22
- https://github.com/godotengine/godot-nir-static/pull/23
- https://github.com/godotengine/godot/pull/111762
2025-11-04 01:11:07 +01:00
Rémi Verschelde
fd3bd4ad89 publish-release: Add -d argument to publish as draft release on GH (#135) 2025-10-29 10:52:10 +01:00
Anish Kumar
38f2a5e351 Android Editor: Add release url to dev/beta/rc notes on Play Store (#134) 2025-10-27 18:29:54 +01:00
Rémi Verschelde
8f39b6a9cb Temporarily disable visionOS builds as we lack a build container with compatible Swift SDK (#133) 2025-10-18 12:18:14 +02:00
Stuart Carnie
9fbd2dbc44 Apple: Update to Apple 26.0 SDKs (#129) 2025-10-18 12:02:45 +02:00
Rémi Verschelde
d72076547a Fix check for Play Store JSON upload key 2025-10-15 23:09:00 +02:00
Anish Mishra
33d44ce966 Publish Android Editor stable releases to open testing track (#130) 2025-10-14 01:01:34 +02:00
Anish Mishra
f17aad663b Automate Play Store uploads for the Android Editor (#128)
Co-authored-by: Rémi Verschelde <remi@godotengine.org>
2025-10-10 14:07:15 +02:00
Thaddeus Crews
4ffb22bfd7 Merge pull request #121 from rsanchezsaez/apple/apple-embedded-unified-template
[build-release.sh] Use new unified iOS/visionOS Xcode project template
2025-09-19 13:12:06 -05:00
Ricardo Sanchez-Saez
1012966dbb [build-release.sh] Use new unified iOS/visionOS Xcode project template 2025-06-26 16:33:33 -07:00
13 changed files with 589 additions and 52 deletions

View File

@@ -4,11 +4,12 @@ set -e
# Config
# Debug symbols are enabled for the Android builds so we can generate a separate debug symbols file.
# Debug symbols are enabled for the Android builds so we can generate a separate debug symbols file.
# Gradle will strip them out of the final artifacts.
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no redirect_build_objects=no"
export OPTIONS="production=yes debug_symbols=yes"
export OPTIONS_MONO="module_mono_enabled=yes"
export OPTIONS_DOTNET="module_dotnet_enabled=yes"
export TERM=xterm
prepare_source() {
@@ -143,4 +144,34 @@ if [ "${MONO}" == "1" ]; then
cp bin/godot-lib.template_release.aar /root/out/templates-mono/
fi
# .NET
if [ "${DOTNET}" == "1" ]; then
echo "Starting .NET build for Android..."
prepare_source
$SCONS platform=android arch=arm32 $OPTIONS $OPTIONS_DOTNET target=template_debug
$SCONS platform=android arch=arm32 $OPTIONS $OPTIONS_DOTNET target=template_release
$SCONS platform=android arch=arm64 $OPTIONS $OPTIONS_DOTNET target=template_debug
$SCONS platform=android arch=arm64 $OPTIONS $OPTIONS_DOTNET target=template_release
$SCONS platform=android arch=x86_32 $OPTIONS $OPTIONS_DOTNET target=template_debug
$SCONS platform=android arch=x86_32 $OPTIONS $OPTIONS_DOTNET target=template_release
$SCONS platform=android arch=x86_64 $OPTIONS $OPTIONS_DOTNET target=template_debug
$SCONS platform=android arch=x86_64 $OPTIONS $OPTIONS_DOTNET target=template_release
pushd platform/android/java
./gradlew generateGodotMonoTemplates
popd
mkdir -p /root/out/templates-dotnet
cp bin/android_source.zip /root/out/templates-dotnet/
cp bin/android_monoDebug.apk /root/out/templates-dotnet/android_debug.apk
cp bin/android_monoRelease.apk /root/out/templates-dotnet/android_release.apk
cp bin/godot-lib.template_release.aar /root/out/templates-dotnet/
fi
echo "Android build successful"

55
build-android/upload-horizon.sh Executable file
View File

@@ -0,0 +1,55 @@
#!/bin/bash
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <version-name> <latest-stable>"
exit 1
fi
VERSION_NAME="$1"
LATEST_STABLE="$2"
BASEDIR="$(pwd)"
source ${BASEDIR}/config.sh
TMPDIR=$(mktemp -d)
cleanup() {
rm -rf "$TMPDIR"
}
trap cleanup EXIT
OVR_PLATFORM_UTIL_DOWNLOAD_URL="https://www.oculus.com/download_app/?id=5159709737372459"
OVR_PLATFORM_UTIL="$TMPDIR/ovr-platform-util"
APK_FILE="${BASEDIR}/out/android/tools/android_editor_horizonos.apk"
NDS_FILE="${BASEDIR}/out/android/tools/android_editor_native_debug_symbols.zip"
NDS_OUTPUT_DIR="$TMPDIR/nds"
STATUS=$(echo "$VERSION_NAME" | sed -e 's/^.*-\([a-z][a-z]*\)[0-9]*$/\1/')
if [ "$STATUS" = "stable" -a "$LATEST_STABLE" = "1" ]; then
HORIZON_STORE_CHANNEL="LIVE"
elif [ "$STATUS" = "dev" ]; then
HORIZON_STORE_CHANNEL="ALPHA"
elif [ "$STATUS" = "beta" ]; then
HORIZON_STORE_CHANNEL="BETA"
elif [ "$STATUS" = "rc" ]; then
HORIZON_STORE_CHANNEL="RC"
else
echo "Unable to determine Horizon store channel from version status: $STATUS" >/dev/stderr
exit 1
fi
mkdir -p "$NDS_OUTPUT_DIR"
(cd "$NDS_OUTPUT_DIR" && unzip "$NDS_FILE")
echo "Downloading ovr-platform-util..."
if ! curl -fL -o "$OVR_PLATFORM_UTIL" "$OVR_PLATFORM_UTIL_DOWNLOAD_URL"; then
exit 1
fi
chmod +x "$OVR_PLATFORM_UTIL"
echo "Uploading $VERSION_NAME to Horizon store on channel $HORIZON_STORE_CHANNEL..."
if ! $OVR_PLATFORM_UTIL upload-quest-build --app-id "$GODOT_ANDROID_HORIZON_APP_ID" --app-secret "$GODOT_ANDROID_HORIZON_APP_SECRET" --apk "$APK_FILE" --channel "$HORIZON_STORE_CHANNEL" --debug-symbols-dir "$NDS_OUTPUT_DIR/arm64-v8a/" --debug-symbols-pattern '*.so'; then
exit 1
fi

71
build-dotnet/build.sh Executable file
View File

@@ -0,0 +1,71 @@
#!/bin/bash
set -e
if [ "${DOTNET}" != "1" ]; then
exit 0
fi
dnf install -y clang python-unversioned-command
git clone https://github.com/raulsntos/godot-dotnet
cd godot-dotnet
git checkout upgrade-assistant-plus-source-code-plugin-wip
echo "Building and generating .NET extension..."
# TODO: Get rid of this when we fix all these trimming warnings in godot-dotnet.
cat << EOF >> .editorconfig
# Disable trimming warnings because it spams the output too much.
dotnet_diagnostics.IL2111.severity = none
EOF
prerelease_label="${GODOT_VERSION#*-}"
version_prefix="${GODOT_VERSION%-*}"
if [[ "${prerelease_label}" == "${GODOT_VERSION}" ]]; then
prerelease_label=""
fi
# TODO: Ensure we don't accidentally make stable releases. We can remove this when we're ready for a stable release.
if [[ -z "$prerelease_label" ]]; then
echo "YOU ARE NOT SUPPOSED TO MAKE A STABLE RELEASE WITH THIS"
exit -1
fi
version_component_count=$(grep -o "\." <<< "$version_prefix" | wc -l)
if [ "$version_component_count" -eq 0 ]; then
version_prefix="${version_prefix}.0.0"
elif [ "$version_component_count" -eq 1 ]; then
version_prefix="${version_prefix}.0"
fi
if [[ -n "$prerelease_label" ]]; then
if [[ "$prerelease_label" =~ ^dev ]]; then
prerelease_label="${prerelease_label/dev/alpha}"
fi
prerelease_label=$(echo "$prerelease_label" | sed -E 's/([^0-9])([0-9])/\1.\2/g')
fi
echo "Building Godot .NET version ${version_prefix} (prerelease: '${prerelease_label}')"
dotnet --info
build_id="$(date +%Y%m%d).1"
final_version_kind="release"
if [[ -n "$prerelease_label" ]]; then
final_version_kind="prerelease"
fi
./build.sh --productBuild --ci --warnAsError false \
/p:GenerateGodotBindings=true \
/p:VersionPrefix=${version_prefix} \
/p:OfficialBuildId=${build_id} \
/p:FinalVersionKind=${final_version_kind} \
/p:PreReleaseVersionLabel=${prerelease_label}
cp -r artifacts/packages/Release/Shipping/* /root/out/
echo ".NET bindings generated successfully"

View File

@@ -7,13 +7,14 @@ set -e
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no redirect_build_objects=no"
# Keep LTO disabled for iOS - it works but it makes linking apps on deploy very slow,
# which is seen as a regression in the current workflow.
export OPTIONS="production=yes use_lto=no"
export OPTIONS="production=yes use_lto=no SWIFT_FRONTEND=/root/.local/share/swiftly/toolchains/6.2.1/usr/bin/swift-frontend"
export OPTIONS_MONO="module_mono_enabled=yes"
export OPTIONS_DOTNET="module_dotnet_enabled=yes"
export TERM=xterm
export IOS_SDK="18.5"
export IOS_DEVICE="IOS_SDK_PATH=/root/SDKs/iPhoneOS${IOS_SDK}.sdk"
export IOS_SIMULATOR="IOS_SDK_PATH=/root/SDKs/iPhoneSimulator${IOS_SDK}.sdk simulator=yes"
export IOS_SDK="26.1"
export IOS_DEVICE="IOS_SDK_PATH=/root/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS${IOS_SDK}.sdk"
export IOS_SIMULATOR="IOS_SDK_PATH=/root/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator${IOS_SDK}.sdk simulator=yes"
export APPLE_TARGET_ARM64="APPLE_TOOLCHAIN_PATH=/root/ioscross/arm64 apple_target_triple=arm-apple-darwin11-"
export APPLE_TARGET_X86_64="APPLE_TOOLCHAIN_PATH=/root/ioscross/x86_64 apple_target_triple=x86_64-apple-darwin11-"
@@ -76,4 +77,30 @@ if [ "${MONO}" == "1" ]; then
cp bin/libgodot.ios.template_debug.x86_64.simulator.a /root/out/templates-mono/libgodot.ios.debug.simulator.a
fi
# .NET
if [ "${DOTNET}" == "1" ]; then
echo "Starting .NET build for iOS..."
# arm64 device
$SCONS platform=ios $OPTIONS $OPTIONS_DOTNET arch=arm64 target=template_debug $IOS_DEVICE $APPLE_TARGET_ARM64
$SCONS platform=ios $OPTIONS $OPTIONS_DOTNET arch=arm64 target=template_release $IOS_DEVICE $APPLE_TARGET_ARM64
# arm64 simulator
# Disabled for now as it doesn't work with cctools-port and current LLVM.
# See https://github.com/godotengine/build-containers/pull/85.
#$SCONS platform=ios $OPTIONS $OPTIONS_DOTNET arch=arm64 target=template_debug $IOS_SIMULATOR $APPLE_TARGET_ARM64
#$SCONS platform=ios $OPTIONS $OPTIONS_DOTNET arch=arm64 target=template_release $IOS_SIMULATOR $APPLE_TARGET_ARM64
# x86_64 simulator
$SCONS platform=ios $OPTIONS $OPTIONS_DOTNET arch=x86_64 target=template_debug $IOS_SIMULATOR $APPLE_TARGET_X86_64
$SCONS platform=ios $OPTIONS $OPTIONS_DOTNET arch=x86_64 target=template_release $IOS_SIMULATOR $APPLE_TARGET_X86_64
mkdir -p /root/out/templates-dotnet
cp bin/libgodot.ios.template_release.arm64.a /root/out/templates-dotnet/libgodot.ios.a
cp bin/libgodot.ios.template_debug.arm64.a /root/out/templates-dotnet/libgodot.ios.debug.a
cp bin/libgodot.ios.template_release.x86_64.simulator.a /root/out/templates-dotnet/libgodot.ios.simulator.a
cp bin/libgodot.ios.template_debug.x86_64.simulator.a /root/out/templates-dotnet/libgodot.ios.debug.simulator.a
fi
echo "iOS build successful"

View File

@@ -7,6 +7,7 @@ set -e
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no redirect_build_objects=no"
export OPTIONS="production=yes accesskit_sdk_path=/root/accesskit/accesskit-c"
export OPTIONS_MONO="module_mono_enabled=yes"
export OPTIONS_DOTNET="module_dotnet_enabled=yes"
export TERM=xterm
rm -rf godot
@@ -137,4 +138,62 @@ if [ "${MONO}" == "1" ]; then
rm -rf bin
fi
# .NET
if [ "${DOTNET}" == "1" ]; then
echo "Starting .NET build for Linux..."
export PATH="${GODOT_SDK_LINUX_X86_64}/bin:${BASE_PATH}"
$SCONS platform=linuxbsd arch=x86_64 $OPTIONS $OPTIONS_DOTNET target=editor
mkdir -p /root/out/x86_64/tools-dotnet
cp -rvp bin/* /root/out/x86_64/tools-dotnet
rm -rf bin
$SCONS platform=linuxbsd arch=x86_64 $OPTIONS $OPTIONS_DOTNET target=template_debug
$SCONS platform=linuxbsd arch=x86_64 $OPTIONS $OPTIONS_DOTNET target=template_release
mkdir -p /root/out/x86_64/templates-dotnet
cp -rvp bin/* /root/out/x86_64/templates-dotnet
rm -rf bin
export PATH="${GODOT_SDK_LINUX_X86_32}/bin:${BASE_PATH}"
$SCONS platform=linuxbsd arch=x86_32 $OPTIONS $OPTIONS_DOTNET target=editor
mkdir -p /root/out/x86_32/tools-dotnet
cp -rvp bin/* /root/out/x86_32/tools-dotnet
rm -rf bin
$SCONS platform=linuxbsd arch=x86_32 $OPTIONS $OPTIONS_DOTNET target=template_debug
$SCONS platform=linuxbsd arch=x86_32 $OPTIONS $OPTIONS_DOTNET target=template_release
mkdir -p /root/out/x86_32/templates-dotnet
cp -rvp bin/* /root/out/x86_32/templates-dotnet
rm -rf bin
export PATH="${GODOT_SDK_LINUX_ARM64}/bin:${BASE_PATH}"
$SCONS platform=linuxbsd arch=arm64 $OPTIONS $OPTIONS_DOTNET target=editor
mkdir -p /root/out/arm64/tools-dotnet
cp -rvp bin/* /root/out/arm64/tools-dotnet
rm -rf bin
$SCONS platform=linuxbsd arch=arm64 $OPTIONS $OPTIONS_DOTNET target=template_debug
$SCONS platform=linuxbsd arch=arm64 $OPTIONS $OPTIONS_DOTNET target=template_release
mkdir -p /root/out/arm64/templates-dotnet
cp -rvp bin/* /root/out/arm64/templates-dotnet
rm -rf bin
export PATH="${GODOT_SDK_LINUX_ARM32}/bin:${BASE_PATH}"
$SCONS platform=linuxbsd arch=arm32 $OPTIONS $OPTIONS_DOTNET target=editor
mkdir -p /root/out/arm32/tools-dotnet
cp -rvp bin/* /root/out/arm32/tools-dotnet
rm -rf bin
$SCONS platform=linuxbsd arch=arm32 $OPTIONS $OPTIONS_DOTNET target=template_debug
$SCONS platform=linuxbsd arch=arm32 $OPTIONS $OPTIONS_DOTNET target=template_release
mkdir -p /root/out/arm32/templates-dotnet
cp -rvp bin/* /root/out/arm32/templates-dotnet
rm -rf bin
fi
echo "Linux build successful"

View File

@@ -5,8 +5,9 @@ set -e
# Config
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no redirect_build_objects=no"
export OPTIONS="osxcross_sdk=darwin24.5 production=yes use_volk=no vulkan_sdk_path=/root/moltenvk angle_libs=/root/angle accesskit_sdk_path=/root/accesskit/accesskit-c"
export OPTIONS="osxcross_sdk=darwin25.1 production=yes use_volk=no vulkan_sdk_path=/root/moltenvk angle_libs=/root/angle accesskit_sdk_path=/root/accesskit/accesskit-c SWIFT_FRONTEND=/root/.local/share/swiftly/toolchains/6.2.1/usr/bin/swift-frontend"
export OPTIONS_MONO="module_mono_enabled=yes"
export OPTIONS_DOTNET="module_dotnet_enabled=yes"
export TERM=xterm
rm -rf godot
@@ -68,4 +69,29 @@ if [ "${MONO}" == "1" ]; then
rm -rf bin
fi
# .NET
if [ "${DOTNET}" == "1" ]; then
echo "Starting .NET build for macOS..."
$SCONS platform=macos $OPTIONS $OPTIONS_DOTNET arch=x86_64 target=editor
$SCONS platform=macos $OPTIONS $OPTIONS_DOTNET arch=arm64 target=editor
lipo -create bin/godot.macos.editor.x86_64.dotnet bin/godot.macos.editor.arm64.dotnet -output bin/godot.macos.editor.universal.dotnet
mkdir -p /root/out/tools-dotnet
cp -rvp bin/* /root/out/tools-dotnet
rm -rf bin
$SCONS platform=macos $OPTIONS $OPTIONS_DOTNET arch=x86_64 target=template_debug
$SCONS platform=macos $OPTIONS $OPTIONS_DOTNET arch=arm64 target=template_debug
lipo -create bin/godot.macos.template_debug.x86_64.dotnet bin/godot.macos.template_debug.arm64.dotnet -output bin/godot.macos.template_debug.universal.dotnet
$SCONS platform=macos $OPTIONS $OPTIONS_DOTNET arch=x86_64 target=template_release
$SCONS platform=macos $OPTIONS $OPTIONS_DOTNET arch=arm64 target=template_release
lipo -create bin/godot.macos.template_release.x86_64.dotnet bin/godot.macos.template_release.arm64.dotnet -output bin/godot.macos.template_release.universal.dotnet
mkdir -p /root/out/templates-dotnet
cp -rvp bin/* /root/out/templates-dotnet
rm -rf bin
fi
echo "macOS build successful"

View File

@@ -33,13 +33,10 @@ sign_macos() {
_macos_tmpdir=$(ssh "${OSX_HOST}" "mktemp -d")
_reldir="$1"
_binname="$2"
_is_mono="$3"
_appname="$3"
if [[ "${_is_mono}" == "1" ]]; then
_appname="Godot_mono.app"
if [[ "${_appname}" == "Godot_mono.app" ]]; then
_sharpdir="${_appname}/Contents/Resources/GodotSharp"
else
_appname="Godot.app"
fi
scp "${_reldir}/${_binname}.zip" "${OSX_HOST}:${_macos_tmpdir}"
@@ -76,7 +73,6 @@ sign_macos_template() {
fi
_macos_tmpdir=$(ssh "${OSX_HOST}" "mktemp -d")
_reldir="$1"
_is_mono="$2"
scp "${_reldir}/macos.zip" "${OSX_HOST}:${_macos_tmpdir}"
ssh "${OSX_HOST}" "
@@ -97,6 +93,7 @@ do_cleanup=1
make_tarball=1
build_classical=1
build_mono=1
build_dotnet=0
while getopts "h?v:t:b:n-:" opt; do
case "$opt" in
@@ -105,7 +102,7 @@ while getopts "h?v:t:b:n-:" opt; do
echo
echo " -v godot version (e.g: 3.2-stable) [mandatory]"
echo " -t templates version (e.g. 3.2.stable) [mandatory]"
echo " -b build target: all|classical|mono|none (default: all)"
echo " -b build target: all|classical|mono|dotnet|none (default: all)"
echo " --no-cleanup disable deleting pre-existing output folders (default: false)"
echo " --no-tarball disable generating source tarball (default: false)"
echo
@@ -119,12 +116,21 @@ while getopts "h?v:t:b:n-:" opt; do
;;
b)
if [ "$OPTARG" == "classical" ]; then
build_classical=1
build_mono=0
build_dotnet=0
elif [ "$OPTARG" == "mono" ]; then
build_classical=0
build_mono=1
build_dotnet=0
elif [ "$OPTARG" == "dotnet" ]; then
build_classical=0
build_mono=0
build_dotnet=1
elif [ "$OPTARG" == "none" ]; then
build_classical=0
build_mono=0
build_dotnet=0
fi
;;
-)
@@ -156,9 +162,11 @@ fi
export reldir="${basedir}/releases/${godot_version}"
export reldir_mono="${reldir}/mono"
export reldir_dotnet="${reldir}/dotnet"
export tmpdir="${basedir}/tmp"
export templatesdir="${tmpdir}/templates"
export templatesdir_mono="${tmpdir}/mono/templates"
export templatesdir_dotnet="${tmpdir}/dotnet/templates"
export webdir="${basedir}/web/${templates_version}"
export steamdir="${basedir}/steam"
@@ -174,9 +182,15 @@ if [ "${do_cleanup}" == "1" ]; then
rm -rf ${steamdir}
mkdir -p ${reldir}
mkdir -p ${reldir_mono}
if [ "${build_mono}" ]; then
mkdir -p ${reldir_mono}
fi
if [ "${build_dotnet}" ]; then
mkdir -p ${reldir_dotnet}
fi
mkdir -p ${templatesdir}
mkdir -p ${templatesdir_mono}
mkdir -p ${templatesdir_dotnet}
mkdir -p ${webdir}
if [ -d out/windows/steam ]; then
mkdir -p ${steamdir}
@@ -294,7 +308,7 @@ if [ "${build_classical}" == "1" ]; then
chmod +x Godot.app/Contents/MacOS/Godot
zip -q -9 -r "${reldir}/${binname}.zip" Godot.app
rm -rf Godot.app
sign_macos ${reldir} ${binname} 0
sign_macos ${reldir} ${binname} Godot.app
# Templates
rm -rf macos_template.app
@@ -306,7 +320,7 @@ if [ "${build_classical}" == "1" ]; then
chmod +x macos_template.app/Contents/MacOS/godot_macos*
zip -q -9 -r "${templatesdir}/macos.zip" macos_template.app
rm -rf macos_template.app
sign_macos_template ${templatesdir} 0
sign_macos_template ${templatesdir}
## Steam (Classical) ##
@@ -369,7 +383,7 @@ if [ "${build_classical}" == "1" ]; then
## iOS (Classical) ##
rm -rf ios_xcode
cp -r git/misc/dist/ios_xcode ios_xcode
cp -r git/misc/dist/apple_embedded_xcode ios_xcode
cp out/ios/templates/libgodot.ios.simulator.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64_x86_64-simulator/libgodot.a
cp out/ios/templates/libgodot.ios.debug.simulator.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a
cp out/ios/templates/libgodot.ios.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64/libgodot.a
@@ -383,14 +397,14 @@ if [ "${build_classical}" == "1" ]; then
## visionOS (Classical) ##
rm -rf visionos_xcode
cp -r git/misc/dist/visionos_xcode visionos_xcode
cp out/visionos/templates/libgodot.visionos.a visionos_xcode/libgodot.visionos.release.xcframework/xros-arm64/libgodot.a
cp out/visionos/templates/libgodot.visionos.debug.a visionos_xcode/libgodot.visionos.debug.xcframework/xros-arm64/libgodot.a
cd visionos_xcode
zip -q -9 -r "${templatesdir}/visionos.zip" *
cd ..
rm -rf visionos_xcode
#rm -rf visionos_xcode
#cp -r git/misc/dist/apple_embedded_xcode visionos_xcode
#cp out/visionos/templates/libgodot.visionos.a visionos_xcode/libgodot.visionos.release.xcframework/xros-arm64/libgodot.a
#cp out/visionos/templates/libgodot.visionos.debug.a visionos_xcode/libgodot.visionos.debug.xcframework/xros-arm64/libgodot.a
#cd visionos_xcode
#zip -q -9 -r "${templatesdir}/visionos.zip" *
#cd ..
#rm -rf visionos_xcode
## Templates TPZ (Classical) ##
@@ -523,7 +537,7 @@ if [ "${build_mono}" == "1" ]; then
chmod +x Godot_mono.app/Contents/MacOS/Godot
zip -q -9 -r "${reldir_mono}/${binname}.zip" Godot_mono.app
rm -rf Godot_mono.app
sign_macos ${reldir_mono} ${binname} 1
sign_macos ${reldir_mono} ${binname} Godot_mono.app
# Templates
rm -rf macos_template.app
@@ -534,7 +548,7 @@ if [ "${build_mono}" == "1" ]; then
chmod +x macos_template.app/Contents/MacOS/godot_macos*
zip -q -9 -r "${templatesdir_mono}/macos.zip" macos_template.app
rm -rf macos_template.app
sign_macos_template ${templatesdir_mono} 1
sign_macos_template ${templatesdir_mono}
## Android (Mono) ##
@@ -548,7 +562,7 @@ if [ "${build_mono}" == "1" ]; then
## iOS (Mono) ##
rm -rf ios_xcode
cp -r git/misc/dist/ios_xcode ios_xcode
cp -r git/misc/dist/apple_embedded_xcode ios_xcode
cp out/ios/templates-mono/libgodot.ios.simulator.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64_x86_64-simulator/libgodot.a
cp out/ios/templates-mono/libgodot.ios.debug.simulator.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a
cp out/ios/templates-mono/libgodot.ios.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64/libgodot.a
@@ -562,14 +576,14 @@ if [ "${build_mono}" == "1" ]; then
## visionOS (Mono) ##
rm -rf visionos_xcode
cp -r git/misc/dist/visionos_xcode visionos_xcode
cp out/visionos/templates-mono/libgodot.visionos.a visionos_xcode/libgodot.visionos.release.xcframework/xros-arm64/libgodot.a
cp out/visionos/templates-mono/libgodot.visionos.debug.a visionos_xcode/libgodot.visionos.debug.xcframework/xros-arm64/libgodot.a
cd visionos_xcode
zip -q -9 -r "${templatesdir_mono}/visionos.zip" *
cd ..
rm -rf visionos_xcode
#rm -rf visionos_xcode
#cp -r git/misc/dist/apple_embedded_xcode visionos_xcode
#cp out/visionos/templates-mono/libgodot.visionos.a visionos_xcode/libgodot.visionos.release.xcframework/xros-arm64/libgodot.a
#cp out/visionos/templates-mono/libgodot.visionos.debug.a visionos_xcode/libgodot.visionos.debug.xcframework/xros-arm64/libgodot.a
#cd visionos_xcode
#zip -q -9 -r "${templatesdir_mono}/visionos.zip" *
#cd ..
#rm -rf visionos_xcode
# No .NET support for those platforms yet.
@@ -600,4 +614,153 @@ if [ "${build_mono}" == "1" ]; then
fi
# .NET
if [ "${build_dotnet}" == "1" ]; then
## Linux (.NET) ##
for arch in x86_64 x86_32 arm64 arm32; do
# Editor
binname="${godot_basename}_dotnet_linux.${arch}"
cp out/linux/${arch}/tools-dotnet/godot.linuxbsd.editor.${arch}.dotnet ${binname}
zip -r -q -9 "${reldir_dotnet}/${binname}.zip" ${binname}
rm ${binname}
# Templates
cp out/linux/${arch}/templates-dotnet/godot.linuxbsd.template_debug.${arch}.dotnet ${templatesdir_dotnet}/linux_debug.${arch}
cp out/linux/${arch}/templates-dotnet/godot.linuxbsd.template_release.${arch}.dotnet ${templatesdir_dotnet}/linux_release.${arch}
done
# ICU data
if [ -f ${basedir}/git/thirdparty/icu4c/icudt_godot.dat ]; then
cp ${basedir}/git/thirdparty/icu4c/icudt_godot.dat ${templatesdir_dotnet}/icudt_godot.dat
else
echo "icudt_godot.dat" not found.
fi
## Windows (.NET) ##
declare -A win_arch_map=(
["x86_64"]="win64"
["x86_32"]="win32"
["arm64"]="arm64"
)
for arch in x86_64 x86_32 arm64; do
# Editor
winarch=${win_arch_map[${arch}]}
binname="${godot_basename}_dotnet_${winarch}.exe"
wrpname="${godot_basename}_dotnet_${winarch}_console.exe"
[[ "${arch}" == "arm64" ]] && is_llvm=".llvm"
cp out/windows/${arch}/tools-dotnet/godot.windows.editor.${arch}${is_llvm}.dotnet.exe ${binname}
sign_windows ${binname}
cp out/windows/${arch}/tools-dotnet/godot.windows.editor.${arch}${is_llvm}.dotnet.console.exe ${wrpname}
sign_windows ${wrpname}
zip -r -q -9 "${reldir_dotnet}/${binname}.zip" ${binname} ${wrpname}
rm ${binname} ${wrpname}
# Templates
cp out/windows/${arch}/templates-dotnet/godot.windows.template_debug.${arch}${is_llvm}.dotnet.exe ${templatesdir_dotnet}/windows_debug_${arch}.exe
cp out/windows/${arch}/templates-dotnet/godot.windows.template_release.${arch}${is_llvm}.dotnet.exe ${templatesdir_dotnet}/windows_release_${arch}.exe
cp out/windows/${arch}/templates-dotnet/godot.windows.template_debug.${arch}${is_llvm}.dotnet.console.exe ${templatesdir_dotnet}/windows_debug_${arch}_console.exe
cp out/windows/${arch}/templates-dotnet/godot.windows.template_release.${arch}${is_llvm}.dotnet.console.exe ${templatesdir_dotnet}/windows_release_${arch}_console.exe
done
## macOS (.NET) ##
# Editor
binname="${godot_basename}_dotnet_macos.universal"
rm -rf Godot_dotnet.app
cp -r git/misc/dist/macos_tools.app Godot_dotnet.app
mkdir -p Godot_dotnet.app/Contents/MacOS
cp out/macos/tools-dotnet/godot.macos.editor.universal.dotnet Godot_dotnet.app/Contents/MacOS/Godot
chmod +x Godot_dotnet.app/Contents/MacOS/Godot
zip -q -9 -r "${reldir_dotnet}/${binname}.zip" Godot_dotnet.app
rm -rf Godot_dotnet.app
sign_macos ${reldir_dotnet} ${binname} Godot_dotnet.app
# Templates
rm -rf macos_template.app
cp -r git/misc/dist/macos_template.app .
mkdir -p macos_template.app/Contents/MacOS
cp out/macos/templates-dotnet/godot.macos.template_debug.universal.dotnet macos_template.app/Contents/MacOS/godot_macos_debug.universal
cp out/macos/templates-dotnet/godot.macos.template_release.universal.dotnet macos_template.app/Contents/MacOS/godot_macos_release.universal
chmod +x macos_template.app/Contents/MacOS/godot_macos*
zip -q -9 -r "${templatesdir_dotnet}/macos.zip" macos_template.app
rm -rf macos_template.app
sign_macos_template ${templatesdir_dotnet}
## Android (.NET) ##
# Lib for direct download
cp out/android/templates-dotnet/godot-lib.template_release.aar ${reldir_dotnet}/godot-lib.${templates_version}.dotnet.template_release.aar
# Templates
cp out/android/templates-dotnet/*.apk ${templatesdir_dotnet}/
cp out/android/templates-dotnet/android_source.zip ${templatesdir_dotnet}/
## iOS (.NET) ##
rm -rf ios_xcode
cp -r git/misc/dist/apple_embedded_xcode ios_xcode
cp out/ios/templates-dotnet/libgodot.ios.simulator.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64_x86_64-simulator/libgodot.a
cp out/ios/templates-dotnet/libgodot.ios.debug.simulator.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a
cp out/ios/templates-dotnet/libgodot.ios.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64/libgodot.a
cp out/ios/templates-dotnet/libgodot.ios.debug.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64/libgodot.a
cp -r deps/moltenvk/MoltenVK/MoltenVK.xcframework ios_xcode/
rm -rf ios_xcode/MoltenVK.xcframework/{macos,tvos}*
cd ios_xcode
zip -q -9 -r "${templatesdir_dotnet}/ios.zip" *
cd ..
rm -rf ios_xcode
## visionOS (.NET) ##
#rm -rf visionos_xcode
#cp -r git/misc/dist/apple_embedded_xcode visionos_xcode
#cp out/visionos/templates-dotnet/libgodot.visionos.a visionos_xcode/libgodot.visionos.release.xcframework/xros-arm64/libgodot.a
#cp out/visionos/templates-dotnet/libgodot.visionos.debug.a visionos_xcode/libgodot.visionos.debug.xcframework/xros-arm64/libgodot.a
#cd visionos_xcode
#zip -q -9 -r "${templatesdir_dotnet}/visionos.zip" *
#cd ..
#rm -rf visionos_xcode
# No .NET support for those platforms yet.
if false; then
## Web (.NET) ##
# Templates
cp out/web/templates-dotnet/godot.web.template_debug.wasm32.dotnet.zip ${templatesdir_dotnet}/web_debug.zip
cp out/web/templates-dotnet/godot.web.template_release.wasm32.dotnet.zip ${templatesdir_dotnet}/web_release.zip
fi
## Templates TPZ (.NET) ##
echo "${templates_version}.dotnet" > ${templatesdir_dotnet}/version.txt
pushd ${templatesdir_dotnet}/..
zip -q -9 -r -D "${reldir_dotnet}/${godot_basename}_dotnet_export_templates.tpz" templates/*
popd
## .NET bindings ##
dotnetname="godot-dotnet-${templates_version}"
mkdir ${dotnetname}
cp out/dotnet/* ${dotnetname}/
zip -q -9 -r "${reldir_dotnet}/${dotnetname}.zip" ${dotnetname}
rm -rf ${dotnetname}
## SHA-512 sums (.NET) ##
pushd ${reldir_dotnet}
sha512sum [Gg]* >> SHA512-SUMS.txt
mkdir -p ${basedir}/sha512sums/${godot_version}/dotnet
cp SHA512-SUMS.txt ${basedir}/sha512sums/${godot_version}/dotnet/
popd
fi
echo "All editor binaries and templates prepared successfully for release"

View File

@@ -8,13 +8,14 @@ export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no redirect_
# Keep LTO disabled for visionOS - it works but it makes linking apps on deploy very slow,
# which is seen as a regression in the current workflow.
# Disable Vulkan and MoltenVK for visionOS - visionOS doesn't support MoltenVK.
export OPTIONS="production=yes use_lto=no vulkan=no"
export OPTIONS="production=yes use_lto=no vulkan=no SWIFT_FRONTEND=/root/.local/share/swiftly/toolchains/6.2.0/usr/bin/swift-frontend"
export OPTIONS_MONO="module_mono_enabled=yes"
export OPTIONS_DOTNET="module_dotnet_enabled=yes"
export TERM=xterm
export VISIONOS_SDK="2.5"
export VISIONOS_DEVICE="VISIONOS_SDK_PATH=/root/SDKs/XROS${VISIONOS_SDK}.sdk"
export VISIONOS_SIMULATOR="VISIONOS_SDK_PATH=/root/SDKs/XRSimulator${VISIONOS_SDK}.sdk simulator=yes"
export VISIONOS_SDK="26.0"
export VISIONOS_DEVICE="VISIONOS_SDK_PATH=/root/Xcode.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS${VISIONOS_SDK}.sdk"
export VISIONOS_SIMULATOR="VISIONOS_SDK_PATH=/root/Xcode.app/Contents/Developer/Platforms/XRSimulator.platform/Developer/SDKs/XRSimulator${VISIONOS_SDK}.sdk"
export APPLE_TARGET_ARM64="APPLE_TOOLCHAIN_PATH=/root/ioscross/arm64 apple_target_triple=arm-apple-darwin11-"
rm -rf godot
@@ -60,4 +61,22 @@ if [ "${MONO}" == "1" ]; then
cp bin/libgodot.visionos.template_debug.arm64.a /root/out/templates-mono/libgodot.visionos.debug.a
fi
# .NET
if [ "${DOTNET}" == "1" ]; then
echo "Starting .NET build for visionOS..."
# arm64 device
$SCONS platform=visionos $OPTIONS $OPTIONS_DOTNET arch=arm64 target=template_debug $VISIONOS_DEVICE $APPLE_TARGET_ARM64
$SCONS platform=visionos $OPTIONS $OPTIONS_DOTNET arch=arm64 target=template_release $VISIONOS_DEVICE $APPLE_TARGET_ARM64
# arm64 simulator (disabled for now, see build-ios)
#$SCONS platform=visionos $OPTIONS $OPTIONS_DOTNET arch=arm64 target=template_debug $VISIONOS_SIMULATOR $APPLE_TARGET_ARM64
#$SCONS platform=visionos $OPTIONS $OPTIONS_DOTNET arch=arm64 target=template_release $VISIONOS_SIMULATOR $APPLE_TARGET_ARM64
mkdir -p /root/out/templates-dotnet
cp bin/libgodot.visionos.template_release.arm64.a /root/out/templates-dotnet/libgodot.visionos.a
cp bin/libgodot.visionos.template_debug.arm64.a /root/out/templates-dotnet/libgodot.visionos.debug.a
fi
echo "visionOS build successful"

View File

@@ -23,6 +23,7 @@ declare -a JOBS_NOTHREADS=(
export SCONS="scons -j$(expr ${NUM_CORES} / ${NUM_JOBS}) verbose=yes warnings=no progress=no redirect_build_objects=no"
export OPTIONS="production=yes"
export OPTIONS_MONO="module_mono_enabled=yes -j${NUM_CORES}"
export OPTIONS_MONO="module_dotnet_enabled=yes -j${NUM_CORES}"
export TERM=xterm
source /root/emsdk/emsdk_env.sh
@@ -94,4 +95,26 @@ if false; then
rm -f bin/*.zip
fi
# .NET
# No Web support with .NET yet.
#if [ "${DOTNET}" == "1" ]; then
if false; then
echo "Starting .NET build for Web..."
$SCONS platform=web ${OPTIONS} ${OPTIONS_DOTNET} target=template_debug
$SCONS platform=web ${OPTIONS} ${OPTIONS_DOTNET} target=template_release
mkdir -p /root/out/templates-dotnet
cp -rvp bin/*.zip /root/out/templates-dotnet
rm -f bin/*.zip
fi
echo "Web build successful"

View File

@@ -7,6 +7,7 @@ set -e
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no redirect_build_objects=no"
export OPTIONS="production=yes use_mingw=yes angle_libs=/root/angle mesa_libs=/root/mesa d3d12=yes accesskit_sdk_path=/root/accesskit/accesskit-c"
export OPTIONS_MONO="module_mono_enabled=yes"
export OPTIONS_DOTNET="module_dotnet_enabled=yes"
export OPTIONS_LLVM="use_llvm=yes mingw_prefix=/root/llvm-mingw"
export TERM=xterm
@@ -110,4 +111,43 @@ if [ "${MONO}" == "1" ]; then
rm -rf bin
fi
# .NET
if [ "${DOTNET}" == "1" ]; then
echo "Starting .NET build for Windows..."
$SCONS platform=windows arch=x86_64 $OPTIONS $OPTIONS_DOTNET target=editor
mkdir -p /root/out/x86_64/tools-dotnet
cp -rvp bin/* /root/out/x86_64/tools-dotnet
rm -rf bin
$SCONS platform=windows arch=x86_64 $OPTIONS $OPTIONS_DOTNET target=template_debug
$SCONS platform=windows arch=x86_64 $OPTIONS $OPTIONS_DOTNET target=template_release
mkdir -p /root/out/x86_64/templates-dotnet
cp -rvp bin/* /root/out/x86_64/templates-dotnet
rm -rf bin
$SCONS platform=windows arch=x86_32 $OPTIONS $OPTIONS_DOTNET target=editor
mkdir -p /root/out/x86_32/tools-dotnet
cp -rvp bin/* /root/out/x86_32/tools-dotnet
rm -rf bin
$SCONS platform=windows arch=x86_32 $OPTIONS $OPTIONS_DOTNET target=template_debug
$SCONS platform=windows arch=x86_32 $OPTIONS $OPTIONS_DOTNET target=template_release
mkdir -p /root/out/x86_32/templates-dotnet
cp -rvp bin/* /root/out/x86_32/templates-dotnet
rm -rf bin
$SCONS platform=windows arch=arm64 $OPTIONS $OPTIONS_DOTNET $OPTIONS_LLVM target=editor
mkdir -p /root/out/arm64/tools-dotnet
cp -rvp bin/* /root/out/arm64/tools-dotnet
rm -rf bin
$SCONS platform=windows arch=arm64 $OPTIONS $OPTIONS_DOTNET $OPTIONS_LLVM target=template_debug
$SCONS platform=windows arch=arm64 $OPTIONS $OPTIONS_DOTNET $OPTIONS_LLVM target=template_release
mkdir -p /root/out/arm64/templates-dotnet
cp -rvp bin/* /root/out/arm64/templates-dotnet
rm -rf bin
fi
echo "Windows build successful"

View File

@@ -36,6 +36,7 @@ godot_version=""
git_treeish="master"
build_classical=1
build_mono=1
build_dotnet=0
build_steam=0
force_download=0
skip_download=1
@@ -51,7 +52,7 @@ while getopts "h?r:u:p:v:g:b:fsc" opt; do
echo " -p password"
echo " -v godot version (e.g. 3.1-alpha5) [mandatory]"
echo " -g git treeish (e.g. master)"
echo " -b all|classical|mono (default: all)"
echo " -b all|classical|mono|dotnet (default: all)"
echo " -f force redownload of all images"
echo " -s skip downloading"
echo " -c skip checkout"
@@ -75,9 +76,17 @@ while getopts "h?r:u:p:v:g:b:fsc" opt; do
;;
b)
if [ "$OPTARG" == "classical" ]; then
build_classical=1
build_mono=0
build_dotnet=0
elif [ "$OPTARG" == "mono" ]; then
build_classical=0
build_mono=1
build_dotnet=0
elif [ "$OPTARG" == "dotnet" ]; then
build_classical=0
build_mono=0
build_dotnet=1
fi
;;
f)
@@ -161,7 +170,7 @@ if [ ! -d "deps/accesskit" ]; then
echo "Missing accesskit, downloading it."
mkdir -p deps/accesskit
pushd deps/accesskit
curl -L -o accesskit.zip https://github.com/godotengine/godot-accesskit-c-static/releases/download/0.17.0/accesskit-c-0.17.0.zip
curl -L -o accesskit.zip https://github.com/godotengine/godot-accesskit-c-static/releases/download/0.18.0/accesskit-c-0.18.0.zip
unzip -o accesskit.zip && rm -f accesskit.zip
mv accesskit-c-* accesskit-c
popd
@@ -172,10 +181,10 @@ if [ ! -d "deps/angle" ]; then
echo "Missing ANGLE libraries, downloading them."
mkdir -p deps/angle
pushd deps/angle
base_url=https://github.com/godotengine/godot-angle-static/releases/download/chromium%2F7219/godot-angle-static
base_url=https://github.com/godotengine/godot-angle-static/releases/download/chromium%2F7578/godot-angle-static
curl -L -o windows_arm64.zip $base_url-arm64-llvm-release.zip
curl -L -o windows_x86_64.zip $base_url-x86_64-gcc-release.zip
curl -L -o windows_x86_32.zip $base_url-x86_32-gcc-release.zip
curl -L -o windows_x86_64.zip $base_url-x86_64-gcc-13-release.zip
curl -L -o windows_x86_32.zip $base_url-x86_32-gcc-13-release.zip
curl -L -o macos_arm64.zip $base_url-arm64-macos-release.zip
curl -L -o macos_x86_64.zip $base_url-x86_64-macos-release.zip
unzip -o windows_arm64.zip && rm -f windows_arm64.zip
@@ -190,9 +199,10 @@ if [ ! -d "deps/mesa" ]; then
echo "Missing Mesa/NIR libraries, downloading them."
mkdir -p deps/mesa
pushd deps/mesa
curl -L -o mesa_arm64.zip https://github.com/godotengine/godot-nir-static/releases/download/23.1.9-1/godot-nir-static-arm64-llvm-release.zip
curl -L -o mesa_x86_64.zip https://github.com/godotengine/godot-nir-static/releases/download/23.1.9-1/godot-nir-static-x86_64-gcc-release.zip
curl -L -o mesa_x86_32.zip https://github.com/godotengine/godot-nir-static/releases/download/23.1.9-1/godot-nir-static-x86_32-gcc-release.zip
base_url=https://github.com/godotengine/godot-nir-static/releases/download/25.3.1-1/godot-nir-static
curl -L -o mesa_arm64.zip $base_url-arm64-llvm-release.zip
curl -L -o mesa_x86_64.zip $base_url-x86_64-gcc-release.zip
curl -L -o mesa_x86_32.zip $base_url-x86_32-gcc-release.zip
unzip -o mesa_arm64.zip && rm -f mesa_arm64.zip
unzip -o mesa_x86_64.zip && rm -f mesa_x86_64.zip
unzip -o mesa_x86_32.zip && rm -f mesa_x86_32.zip
@@ -247,12 +257,15 @@ EOF
popd
fi
export podman_run="${podman} run -it --rm --env BUILD_NAME=${BUILD_NAME} --env GODOT_VERSION_STATUS=${GODOT_VERSION_STATUS} --env NUM_CORES=${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 podman_run="${podman} run -it --rm --env BUILD_NAME=${BUILD_NAME} --env GODOT_VERSION_STATUS=${GODOT_VERSION_STATUS} --env NUM_CORES=${NUM_CORES} --env CLASSICAL=${build_classical} --env MONO=${build_mono} --env DOTNET=${build_dotnet} -v ${basedir}/godot-${godot_version}.tar.gz:/root/godot.tar.gz -v ${basedir}/mono-glue:/root/mono-glue -w /root/"
export img_version=$IMAGE_VERSION
mkdir -p ${basedir}/mono-glue
${podman_run} -v ${basedir}/build-mono-glue:/root/build localhost/godot-linux:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/mono-glue
mkdir -p ${basedir}/out/dotnet
${podman_run} -v ${basedir}/build-dotnet:/root/build -v ${basedir}/out/dotnet:/root/out --env GODOT_VERSION=${godot_version} localhost/godot-linux:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/dotnet
mkdir -p ${basedir}/out/windows
${podman_run} -v ${basedir}/build-windows:/root/build -v ${basedir}/out/windows:/root/out -v ${basedir}/deps/angle:/root/angle -v ${basedir}/deps/mesa:/root/mesa -v ${basedir}/deps/accesskit:/root/accesskit --env STEAM=${build_steam} localhost/godot-windows:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/windows
@@ -271,8 +284,8 @@ ${podman_run} -v ${basedir}/build-android:/root/build -v ${basedir}/out/android:
mkdir -p ${basedir}/out/ios
${podman_run} -v ${basedir}/build-ios:/root/build -v ${basedir}/out/ios:/root/out localhost/godot-appleembedded:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/ios
mkdir -p ${basedir}/out/visionos
${podman_run} -v ${basedir}/build-visionos:/root/build -v ${basedir}/out/visionos:/root/out localhost/godot-appleembedded:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/visionos
#mkdir -p ${basedir}/out/visionos
#${podman_run} -v ${basedir}/build-visionos:/root/build -v ${basedir}/out/visionos:/root/out localhost/godot-appleembedded:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/visionos
uid=$(id -un)
gid=$(id -gn)

View File

@@ -101,3 +101,6 @@ export GODOT_ANDROID_SIGN_PASSWORD=''
# Google Cloud Service Account JSON key with access to Play Console upload permissions
# (View app information + Release apps to production and/or testing.)
export GODOT_ANDROID_UPLOAD_JSON_KEY=''
# Horizon Store app ID and secret.
export GODOT_ANDROID_HORIZON_APP_ID=''
export GODOT_ANDROID_HORIZON_APP_SECRET=''

View File

@@ -187,7 +187,14 @@ if [ -e "${GODOT_ANDROID_UPLOAD_JSON_KEY}" ]; then
echo "Publishing Android Editor to Play Store..."
sh build-android/upload-playstore.sh ${godot_version}
else
echo "Disabling Android Editor publishing as no valid Play Store JSON key was found."
echo "Disabling Android Editor publishing on the Play Store as no valid Play Store JSON key was found."
fi
if [ ! -z "${GODOT_ANDROID_HORIZON_APP_ID}" ] && [ ! -z "${GODOT_ANDROID_HORIZON_APP_SECRET}" ]; then
echo "Publishing Android Editor to Horizon Store..."
./build-android/upload-horizon.sh ${godot_version} ${latest_stable}
else
echo "Disabling Android Editor publishing on the Horizon Store as config.sh does not define the required data (GODOT_ANDROID_HORIZON_APP_ID, GODOT_ANDROID_HORIZON_SECRET)."
fi
# Godot Android library