mirror of
https://github.com/godotengine/godot-build-scripts.git
synced 2026-01-01 09:48:47 +03:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
69b6f0a66e | ||
|
|
13e2c35a67 | ||
|
|
5adaf9761a | ||
|
|
daba64bcfa | ||
|
|
eea2b5572b |
@@ -4,12 +4,11 @@ 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() {
|
||||
@@ -144,34 +143,4 @@ 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"
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
#!/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
|
||||
@@ -1,71 +0,0 @@
|
||||
#!/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"
|
||||
@@ -7,14 +7,13 @@ 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 SWIFT_FRONTEND=/root/.local/share/swiftly/toolchains/6.2.1/usr/bin/swift-frontend"
|
||||
export OPTIONS="production=yes use_lto=no"
|
||||
export OPTIONS_MONO="module_mono_enabled=yes"
|
||||
export OPTIONS_DOTNET="module_dotnet_enabled=yes"
|
||||
export TERM=xterm
|
||||
|
||||
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 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 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-"
|
||||
|
||||
@@ -77,30 +76,4 @@ 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"
|
||||
|
||||
@@ -7,7 +7,6 @@ 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
|
||||
@@ -138,62 +137,4 @@ 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"
|
||||
|
||||
@@ -5,9 +5,8 @@ set -e
|
||||
# Config
|
||||
|
||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no redirect_build_objects=no"
|
||||
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="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_MONO="module_mono_enabled=yes"
|
||||
export OPTIONS_DOTNET="module_dotnet_enabled=yes"
|
||||
export TERM=xterm
|
||||
|
||||
rm -rf godot
|
||||
@@ -69,29 +68,4 @@ 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"
|
||||
|
||||
223
build-release.sh
223
build-release.sh
@@ -33,10 +33,13 @@ sign_macos() {
|
||||
_macos_tmpdir=$(ssh "${OSX_HOST}" "mktemp -d")
|
||||
_reldir="$1"
|
||||
_binname="$2"
|
||||
_appname="$3"
|
||||
_is_mono="$3"
|
||||
|
||||
if [[ "${_appname}" == "Godot_mono.app" ]]; then
|
||||
if [[ "${_is_mono}" == "1" ]]; then
|
||||
_appname="Godot_mono.app"
|
||||
_sharpdir="${_appname}/Contents/Resources/GodotSharp"
|
||||
else
|
||||
_appname="Godot.app"
|
||||
fi
|
||||
|
||||
scp "${_reldir}/${_binname}.zip" "${OSX_HOST}:${_macos_tmpdir}"
|
||||
@@ -73,6 +76,7 @@ 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}" "
|
||||
@@ -93,7 +97,6 @@ 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
|
||||
@@ -102,7 +105,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|dotnet|none (default: all)"
|
||||
echo " -b build target: all|classical|mono|none (default: all)"
|
||||
echo " --no-cleanup disable deleting pre-existing output folders (default: false)"
|
||||
echo " --no-tarball disable generating source tarball (default: false)"
|
||||
echo
|
||||
@@ -116,21 +119,12 @@ 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
|
||||
;;
|
||||
-)
|
||||
@@ -162,11 +156,9 @@ 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"
|
||||
|
||||
@@ -182,15 +174,9 @@ if [ "${do_cleanup}" == "1" ]; then
|
||||
rm -rf ${steamdir}
|
||||
|
||||
mkdir -p ${reldir}
|
||||
if [ "${build_mono}" ]; then
|
||||
mkdir -p ${reldir_mono}
|
||||
fi
|
||||
if [ "${build_dotnet}" ]; then
|
||||
mkdir -p ${reldir_dotnet}
|
||||
fi
|
||||
mkdir -p ${reldir_mono}
|
||||
mkdir -p ${templatesdir}
|
||||
mkdir -p ${templatesdir_mono}
|
||||
mkdir -p ${templatesdir_dotnet}
|
||||
mkdir -p ${webdir}
|
||||
if [ -d out/windows/steam ]; then
|
||||
mkdir -p ${steamdir}
|
||||
@@ -308,7 +294,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} Godot.app
|
||||
sign_macos ${reldir} ${binname} 0
|
||||
|
||||
# Templates
|
||||
rm -rf macos_template.app
|
||||
@@ -320,7 +306,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}
|
||||
sign_macos_template ${templatesdir} 0
|
||||
|
||||
## Steam (Classical) ##
|
||||
|
||||
@@ -383,7 +369,7 @@ if [ "${build_classical}" == "1" ]; then
|
||||
## iOS (Classical) ##
|
||||
|
||||
rm -rf ios_xcode
|
||||
cp -r git/misc/dist/apple_embedded_xcode ios_xcode
|
||||
cp -r git/misc/dist/ios_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
|
||||
@@ -397,14 +383,14 @@ if [ "${build_classical}" == "1" ]; then
|
||||
|
||||
## visionOS (Classical) ##
|
||||
|
||||
#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
|
||||
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
|
||||
|
||||
## Templates TPZ (Classical) ##
|
||||
|
||||
@@ -537,7 +523,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} Godot_mono.app
|
||||
sign_macos ${reldir_mono} ${binname} 1
|
||||
|
||||
# Templates
|
||||
rm -rf macos_template.app
|
||||
@@ -548,7 +534,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}
|
||||
sign_macos_template ${templatesdir_mono} 1
|
||||
|
||||
## Android (Mono) ##
|
||||
|
||||
@@ -562,7 +548,7 @@ if [ "${build_mono}" == "1" ]; then
|
||||
## iOS (Mono) ##
|
||||
|
||||
rm -rf ios_xcode
|
||||
cp -r git/misc/dist/apple_embedded_xcode ios_xcode
|
||||
cp -r git/misc/dist/ios_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
|
||||
@@ -576,14 +562,14 @@ if [ "${build_mono}" == "1" ]; then
|
||||
|
||||
## visionOS (Mono) ##
|
||||
|
||||
#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
|
||||
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
|
||||
|
||||
# No .NET support for those platforms yet.
|
||||
|
||||
@@ -614,153 +600,4 @@ 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"
|
||||
|
||||
@@ -8,14 +8,13 @@ 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 SWIFT_FRONTEND=/root/.local/share/swiftly/toolchains/6.2.0/usr/bin/swift-frontend"
|
||||
export OPTIONS="production=yes use_lto=no vulkan=no"
|
||||
export OPTIONS_MONO="module_mono_enabled=yes"
|
||||
export OPTIONS_DOTNET="module_dotnet_enabled=yes"
|
||||
export TERM=xterm
|
||||
|
||||
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 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 APPLE_TARGET_ARM64="APPLE_TOOLCHAIN_PATH=/root/ioscross/arm64 apple_target_triple=arm-apple-darwin11-"
|
||||
|
||||
rm -rf godot
|
||||
@@ -61,22 +60,4 @@ 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"
|
||||
|
||||
@@ -23,7 +23,6 @@ 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
|
||||
@@ -95,26 +94,4 @@ 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"
|
||||
|
||||
@@ -7,7 +7,6 @@ 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
|
||||
|
||||
@@ -111,43 +110,4 @@ 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"
|
||||
|
||||
35
build.sh
35
build.sh
@@ -36,7 +36,6 @@ godot_version=""
|
||||
git_treeish="master"
|
||||
build_classical=1
|
||||
build_mono=1
|
||||
build_dotnet=0
|
||||
build_steam=0
|
||||
force_download=0
|
||||
skip_download=1
|
||||
@@ -52,7 +51,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|dotnet (default: all)"
|
||||
echo " -b all|classical|mono (default: all)"
|
||||
echo " -f force redownload of all images"
|
||||
echo " -s skip downloading"
|
||||
echo " -c skip checkout"
|
||||
@@ -76,17 +75,9 @@ 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)
|
||||
@@ -170,7 +161,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.18.0/accesskit-c-0.18.0.zip
|
||||
curl -L -o accesskit.zip https://github.com/godotengine/godot-accesskit-c-static/releases/download/0.17.0/accesskit-c-0.17.0.zip
|
||||
unzip -o accesskit.zip && rm -f accesskit.zip
|
||||
mv accesskit-c-* accesskit-c
|
||||
popd
|
||||
@@ -181,10 +172,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%2F7578/godot-angle-static
|
||||
base_url=https://github.com/godotengine/godot-angle-static/releases/download/chromium%2F7219/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-13-release.zip
|
||||
curl -L -o windows_x86_32.zip $base_url-x86_32-gcc-13-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 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
|
||||
@@ -199,10 +190,9 @@ if [ ! -d "deps/mesa" ]; then
|
||||
echo "Missing Mesa/NIR libraries, downloading them."
|
||||
mkdir -p deps/mesa
|
||||
pushd deps/mesa
|
||||
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
|
||||
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
|
||||
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
|
||||
@@ -257,15 +247,12 @@ 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} --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 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 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
|
||||
|
||||
@@ -284,8 +271,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)
|
||||
|
||||
@@ -101,6 +101,3 @@ 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=''
|
||||
|
||||
@@ -187,14 +187,7 @@ 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 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)."
|
||||
echo "Disabling Android Editor publishing as no valid Play Store JSON key was found."
|
||||
fi
|
||||
|
||||
# Godot Android library
|
||||
|
||||
Reference in New Issue
Block a user