mirror of
https://github.com/godotengine/godot-build-scripts.git
synced 2026-01-04 02:09:44 +03:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a38ef2f71f |
5
.gitignore
vendored
5
.gitignore
vendored
@@ -3,7 +3,6 @@ config.sh
|
|||||||
*.jks
|
*.jks
|
||||||
*.pfx
|
*.pfx
|
||||||
*.pkcs12
|
*.pkcs12
|
||||||
/*.json
|
|
||||||
|
|
||||||
# Generated by build scripts
|
# Generated by build scripts
|
||||||
angle/
|
angle/
|
||||||
@@ -17,9 +16,5 @@ angle.7z
|
|||||||
out/
|
out/
|
||||||
releases/
|
releases/
|
||||||
sha512sums/
|
sha512sums/
|
||||||
steam/
|
|
||||||
tmp/
|
tmp/
|
||||||
web/
|
web/
|
||||||
|
|
||||||
# macOS
|
|
||||||
.DS_Store
|
|
||||||
|
|||||||
@@ -4,21 +4,15 @@ set -e
|
|||||||
|
|
||||||
# Config
|
# Config
|
||||||
|
|
||||||
# Debug symbols are enabled for the Android builds so we can generate a separate debug symbols file.
|
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
||||||
# Gradle will strip them out of the final artifacts.
|
export OPTIONS="production=yes"
|
||||||
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_MONO="module_mono_enabled=yes"
|
||||||
export TERM=xterm
|
export TERM=xterm
|
||||||
|
|
||||||
prepare_source() {
|
rm -rf godot
|
||||||
cd /root
|
mkdir godot
|
||||||
rm -rf godot
|
cd godot
|
||||||
mkdir godot
|
tar xf /root/godot.tar.gz --strip-components=1
|
||||||
cd godot
|
|
||||||
tar xf /root/godot.tar.gz --strip-components=1
|
|
||||||
cp -rf /root/swappy/* thirdparty/swappy-frame-pacing/
|
|
||||||
}
|
|
||||||
|
|
||||||
# Environment variables and keystore needed for signing store editor build,
|
# Environment variables and keystore needed for signing store editor build,
|
||||||
# as well as signing and publishing to MavenCentral.
|
# as well as signing and publishing to MavenCentral.
|
||||||
@@ -32,64 +26,46 @@ fi
|
|||||||
|
|
||||||
# Classical
|
# Classical
|
||||||
|
|
||||||
|
dnf -y install gettext
|
||||||
|
|
||||||
if [ "${CLASSICAL}" == "1" ]; then
|
if [ "${CLASSICAL}" == "1" ]; then
|
||||||
echo "Starting classical build for Android..."
|
echo "Starting classical build for Android..."
|
||||||
|
|
||||||
prepare_source
|
|
||||||
|
|
||||||
$SCONS platform=android arch=arm32 $OPTIONS target=editor store_release=${store_release}
|
$SCONS platform=android arch=arm32 $OPTIONS target=editor store_release=${store_release}
|
||||||
$SCONS platform=android arch=arm64 $OPTIONS target=editor store_release=${store_release}
|
$SCONS platform=android arch=arm64 $OPTIONS target=editor store_release=${store_release}
|
||||||
$SCONS platform=android arch=x86_32 $OPTIONS target=editor store_release=${store_release}
|
$SCONS platform=android arch=x86_32 $OPTIONS target=editor store_release=${store_release}
|
||||||
$SCONS platform=android arch=x86_64 $OPTIONS target=editor store_release=${store_release} separate_debug_symbols=yes # Generate native debug symbols.
|
$SCONS platform=android arch=x86_64 $OPTIONS target=editor store_release=${store_release}
|
||||||
|
|
||||||
pushd platform/android/java
|
pushd platform/android/java
|
||||||
# Generate the regular Android editor.
|
|
||||||
./gradlew generateGodotEditor
|
./gradlew generateGodotEditor
|
||||||
# Generate the Android editor for HorizonOS devices.
|
|
||||||
./gradlew generateGodotHorizonOSEditor
|
|
||||||
# Generate the Android editor for PicoOS devices.
|
|
||||||
./gradlew generateGodotPicoOSEditor
|
|
||||||
popd
|
popd
|
||||||
|
|
||||||
mkdir -p /root/out/tools
|
mkdir -p /root/out/tools
|
||||||
|
# Copy the generated Android editor binaries (apk & aab).
|
||||||
if [ "$store_release" == "yes" ]; then
|
if [ "$store_release" == "yes" ]; then
|
||||||
# Copy the native debug symbols, a single one cover all editor builds.
|
cp bin/android_editor_builds/android_editor-release.apk /root/out/tools/android_editor.apk
|
||||||
cp bin/android-editor-release-native-symbols.zip /root/out/tools/android_editor_native_debug_symbols.zip
|
cp bin/android_editor_builds/android_editor-release.aab /root/out/tools/android_editor.aab
|
||||||
|
|
||||||
# Copy the generated Android editor binaries (apk & aab).
|
|
||||||
cp bin/android_editor_builds/android_editor-android-release.apk /root/out/tools/android_editor.apk
|
|
||||||
cp bin/android_editor_builds/android_editor-android-release.aab /root/out/tools/android_editor.aab
|
|
||||||
|
|
||||||
# For the HorizonOS and PicoOS builds, we only copy the apk.
|
|
||||||
cp bin/android_editor_builds/android_editor-horizonos-release.apk /root/out/tools/android_editor_horizonos.apk
|
|
||||||
cp bin/android_editor_builds/android_editor-picoos-release.apk /root/out/tools/android_editor_picoos.apk
|
|
||||||
else
|
else
|
||||||
# Copy the native debug symbols, a single one cover all editor builds.
|
cp bin/android_editor_builds/android_editor-debug.apk /root/out/tools/android_editor.apk
|
||||||
cp bin/android-editor-debug-native-symbols.zip /root/out/tools/android_editor_native_debug_symbols.zip
|
cp bin/android_editor_builds/android_editor-debug.aab /root/out/tools/android_editor.aab
|
||||||
|
|
||||||
# Copy the generated Android editor binaries (apk & aab).
|
|
||||||
cp bin/android_editor_builds/android_editor-android-debug.apk /root/out/tools/android_editor.apk
|
|
||||||
cp bin/android_editor_builds/android_editor-android-debug.aab /root/out/tools/android_editor.aab
|
|
||||||
|
|
||||||
# For the HorizonOS and PicoOS build, we only copy the apk.
|
|
||||||
cp bin/android_editor_builds/android_editor-horizonos-debug.apk /root/out/tools/android_editor_horizonos.apk
|
|
||||||
cp bin/android_editor_builds/android_editor-picoos-debug.apk /root/out/tools/android_editor_picoos.apk
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Template builds
|
# Restart from a clean tarball, as we'll copy all the contents
|
||||||
|
# outside the container for the MavenCentral upload.
|
||||||
prepare_source
|
rm -rf /root/godot/*
|
||||||
|
tar xf /root/godot.tar.gz --strip-components=1
|
||||||
$SCONS platform=android arch=arm32 $OPTIONS target=template_release
|
|
||||||
$SCONS platform=android arch=arm64 $OPTIONS target=template_release
|
|
||||||
$SCONS platform=android arch=x86_32 $OPTIONS target=template_release
|
|
||||||
$SCONS platform=android arch=x86_64 $OPTIONS target=template_release separate_debug_symbols=yes # Generate native debug symbols only for the release templates.
|
|
||||||
|
|
||||||
$SCONS platform=android arch=arm32 $OPTIONS target=template_debug
|
$SCONS platform=android arch=arm32 $OPTIONS target=template_debug
|
||||||
|
$SCONS platform=android arch=arm32 $OPTIONS target=template_release
|
||||||
|
|
||||||
$SCONS platform=android arch=arm64 $OPTIONS target=template_debug
|
$SCONS platform=android arch=arm64 $OPTIONS target=template_debug
|
||||||
|
$SCONS platform=android arch=arm64 $OPTIONS target=template_release
|
||||||
|
|
||||||
$SCONS platform=android arch=x86_32 $OPTIONS target=template_debug
|
$SCONS platform=android arch=x86_32 $OPTIONS target=template_debug
|
||||||
|
$SCONS platform=android arch=x86_32 $OPTIONS target=template_release
|
||||||
|
|
||||||
$SCONS platform=android arch=x86_64 $OPTIONS target=template_debug
|
$SCONS platform=android arch=x86_64 $OPTIONS target=template_debug
|
||||||
|
$SCONS platform=android arch=x86_64 $OPTIONS target=template_release
|
||||||
|
|
||||||
pushd platform/android/java
|
pushd platform/android/java
|
||||||
./gradlew generateGodotTemplates
|
./gradlew generateGodotTemplates
|
||||||
@@ -108,16 +84,15 @@ if [ "${CLASSICAL}" == "1" ]; then
|
|||||||
cp bin/android_debug.apk /root/out/templates/
|
cp bin/android_debug.apk /root/out/templates/
|
||||||
cp bin/android_release.apk /root/out/templates/
|
cp bin/android_release.apk /root/out/templates/
|
||||||
cp bin/godot-lib.template_release.aar /root/out/templates/
|
cp bin/godot-lib.template_release.aar /root/out/templates/
|
||||||
cp bin/android-template-release-native-symbols.zip /root/out/templates/android_release_template_native_debug_symbols.zip
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Mono
|
# Mono
|
||||||
|
|
||||||
if [ "${MONO}" == "1" ]; then
|
# No Android support with .NET 6 yet.
|
||||||
|
#if [ "${MONO}" == "1" ]; then
|
||||||
|
if false; then
|
||||||
echo "Starting Mono build for Android..."
|
echo "Starting Mono build for Android..."
|
||||||
|
|
||||||
prepare_source
|
|
||||||
|
|
||||||
cp -r /root/mono-glue/GodotSharp/GodotSharp/Generated modules/mono/glue/GodotSharp/GodotSharp/
|
cp -r /root/mono-glue/GodotSharp/GodotSharp/Generated modules/mono/glue/GodotSharp/GodotSharp/
|
||||||
|
|
||||||
$SCONS platform=android arch=arm32 $OPTIONS $OPTIONS_MONO target=template_debug
|
$SCONS platform=android arch=arm32 $OPTIONS $OPTIONS_MONO target=template_debug
|
||||||
@@ -133,14 +108,14 @@ if [ "${MONO}" == "1" ]; then
|
|||||||
$SCONS platform=android arch=x86_64 $OPTIONS $OPTIONS_MONO target=template_release
|
$SCONS platform=android arch=x86_64 $OPTIONS $OPTIONS_MONO target=template_release
|
||||||
|
|
||||||
pushd platform/android/java
|
pushd platform/android/java
|
||||||
./gradlew generateGodotMonoTemplates
|
./gradlew generateGodotTemplates
|
||||||
popd
|
popd
|
||||||
|
|
||||||
mkdir -p /root/out/templates-mono
|
mkdir -p /root/out/templates-mono
|
||||||
cp bin/android_source.zip /root/out/templates-mono/
|
cp bin/android_source.zip /root/out/templates-mono/
|
||||||
cp bin/android_monoDebug.apk /root/out/templates-mono/android_debug.apk
|
cp bin/android_debug.apk /root/out/templates-mono/
|
||||||
cp bin/android_monoRelease.apk /root/out/templates-mono/android_release.apk
|
cp bin/android_release.apk /root/out/templates-mono/
|
||||||
cp bin/godot-lib.template_release.aar /root/out/templates-mono/
|
cp bin/godot-lib.release.aar /root/out/templates-mono/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Android build successful"
|
echo "Android build successful"
|
||||||
|
|||||||
@@ -1,109 +0,0 @@
|
|||||||
import sys, socket
|
|
||||||
from google.oauth2 import service_account
|
|
||||||
from googleapiclient.discovery import build
|
|
||||||
|
|
||||||
PACKAGE_NAME = "org.godotengine.editor.v4"
|
|
||||||
|
|
||||||
def main(aab_path, nds_path, key_path, version_name):
|
|
||||||
version_base = version_name.split("-")[0]
|
|
||||||
version_parts = version_base.split(".")
|
|
||||||
major = version_parts[0]
|
|
||||||
minor = version_parts[1]
|
|
||||||
patch = int(version_parts[2]) if len(version_parts) > 2 else 0
|
|
||||||
channel = version_name.split("-")[1]
|
|
||||||
|
|
||||||
release_note = f"Godot Engine {version_name} has arrived!\nNote: This is a pre-release piece of software so be sure to make backups."
|
|
||||||
track = "alpha"
|
|
||||||
|
|
||||||
if "stable" in channel:
|
|
||||||
if patch == 0:
|
|
||||||
release_url = f"https://godotengine.org/releases/{major}.{minor}/"
|
|
||||||
else:
|
|
||||||
release_url = f"https://godotengine.org/article/maintenance-release-godot-{major}-{minor}-{patch}/"
|
|
||||||
release_note = f"Godot Engine {version_name} has arrived!\nRelease page: {release_url}"
|
|
||||||
track = "beta"
|
|
||||||
elif "rc" in channel:
|
|
||||||
channel_url = channel.replace("rc", "rc-")
|
|
||||||
if patch == 0:
|
|
||||||
release_url = f"https://godotengine.org/article/release-candidate-godot-{major}-{minor}-{channel_url}/"
|
|
||||||
else:
|
|
||||||
release_url = f"https://godotengine.org/article/release-candidate-godot-{major}-{minor}-{patch}-{channel_url}/"
|
|
||||||
release_note += f"\nRelease page: {release_url}"
|
|
||||||
else:
|
|
||||||
# No need to handle patch versions here: maintenance releases go straight to RC and stable.
|
|
||||||
# There are no 4.5.1-dev or 4.5.1-beta builds.
|
|
||||||
if "beta" in channel:
|
|
||||||
channel_url = channel.replace("beta", "beta-")
|
|
||||||
else:
|
|
||||||
channel_url = channel.replace("dev", "dev-")
|
|
||||||
release_url = f"https://godotengine.org/article/dev-snapshot-godot-{major}-{minor}-{channel_url}/"
|
|
||||||
release_note += f"\nRelease page: {release_url}"
|
|
||||||
|
|
||||||
scopes = ["https://www.googleapis.com/auth/androidpublisher"]
|
|
||||||
credentials = service_account.Credentials.from_service_account_file(key_path, scopes=scopes)
|
|
||||||
|
|
||||||
initial_timeout = socket.getdefaulttimeout()
|
|
||||||
socket.setdefaulttimeout(900)
|
|
||||||
service = build("androidpublisher", "v3", credentials=credentials)
|
|
||||||
|
|
||||||
print("Creating a new edit")
|
|
||||||
edit = service.edits().insert(body={}, packageName=PACKAGE_NAME).execute()
|
|
||||||
edit_id = edit["id"]
|
|
||||||
|
|
||||||
print(f"Uploading {aab_path}")
|
|
||||||
bundle_response = service.edits().bundles().upload(
|
|
||||||
editId=edit_id,
|
|
||||||
packageName=PACKAGE_NAME,
|
|
||||||
media_body=aab_path,
|
|
||||||
media_mime_type="application/octet-stream"
|
|
||||||
).execute()
|
|
||||||
|
|
||||||
version_code = bundle_response["versionCode"]
|
|
||||||
print(f"Uploaded AAB with versionCode: {version_code}")
|
|
||||||
|
|
||||||
print(f"Uploading native debug symbols {nds_path}")
|
|
||||||
service.edits().deobfuscationfiles().upload(
|
|
||||||
editId=edit_id,
|
|
||||||
packageName=PACKAGE_NAME,
|
|
||||||
apkVersionCode=version_code,
|
|
||||||
deobfuscationFileType="nativeCode",
|
|
||||||
media_body=nds_path,
|
|
||||||
media_mime_type="application/octet-stream"
|
|
||||||
).execute()
|
|
||||||
|
|
||||||
release_name = f"v{version_name} ({version_code})"
|
|
||||||
print(f"Assigning {release_name} to {track} track")
|
|
||||||
|
|
||||||
service.edits().tracks().update(
|
|
||||||
editId=edit_id,
|
|
||||||
packageName=PACKAGE_NAME,
|
|
||||||
track=track,
|
|
||||||
body={
|
|
||||||
"releases": [{
|
|
||||||
"name": release_name,
|
|
||||||
"versionCodes": [str(version_code)],
|
|
||||||
"status": "completed",
|
|
||||||
"releaseNotes": [{
|
|
||||||
"language": "en-US",
|
|
||||||
"text": release_note
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
).execute()
|
|
||||||
|
|
||||||
service.edits().commit(editId=edit_id, packageName=PACKAGE_NAME).execute()
|
|
||||||
print("Release uploaded and published successfully!")
|
|
||||||
socket.setdefaulttimeout(initial_timeout)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
if len(sys.argv) != 5:
|
|
||||||
print("Usage: python3 upload_playstore.py <aab-path> <native-debug-symbols-path> <json-key-path> <version-name>")
|
|
||||||
print("version-name format: <major>.<minor>[.<patch>]-<channel> (e.g. 4.4.1-stable, 4.5-stable, 4.6-dev1)")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
aab_path = sys.argv[1]
|
|
||||||
nds_path = sys.argv[2]
|
|
||||||
key_path = sys.argv[3]
|
|
||||||
version_name = sys.argv[4]
|
|
||||||
|
|
||||||
main(aab_path, nds_path, key_path, version_name)
|
|
||||||
2
build-android/upload-mavencentral.sh
Executable file → Normal file
2
build-android/upload-mavencentral.sh
Executable file → Normal file
@@ -15,4 +15,4 @@ ${PODMAN} run -it --rm \
|
|||||||
"source /root/keystore/config.sh && \
|
"source /root/keystore/config.sh && \
|
||||||
cp -r /root/godot/.gradle /root && \
|
cp -r /root/godot/.gradle /root && \
|
||||||
cd /root/godot/platform/android/java && \
|
cd /root/godot/platform/android/java && \
|
||||||
./gradlew publishAllPublicationToSonatypeRepository --max-workers 1 closeAndReleaseSonatypeStagingRepository"
|
./gradlew publishTemplateReleasePublicationToSonatypeRepository --max-workers 1 closeAndReleaseSonatypeStagingRepository"
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ "$#" -ne 1 ]; then
|
|
||||||
echo "Usage: $0 <version-name>"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
VERSION_NAME="$1"
|
|
||||||
|
|
||||||
BASEDIR="$(pwd)"
|
|
||||||
|
|
||||||
source ${BASEDIR}/config.sh
|
|
||||||
|
|
||||||
VENV_DIR="${BASEDIR}/venv"
|
|
||||||
PYTHON_SCRIPT="${BASEDIR}/build-android/playstore_upload_script.py"
|
|
||||||
AAB_FILE="${BASEDIR}/out/android/tools/android_editor.aab"
|
|
||||||
NDS_FILE="${BASEDIR}/out/android/tools/android_editor_native_debug_symbols.zip"
|
|
||||||
JSON_KEY_FILE="${BASEDIR}/${GODOT_ANDROID_UPLOAD_JSON_KEY}"
|
|
||||||
|
|
||||||
echo "Creating virtual environment"
|
|
||||||
rm -rf "$VENV_DIR"
|
|
||||||
python3 -m venv "$VENV_DIR"
|
|
||||||
source "$VENV_DIR/bin/activate"
|
|
||||||
|
|
||||||
echo "Installing google-api-python-client"
|
|
||||||
pip install --upgrade google-api-python-client
|
|
||||||
|
|
||||||
echo "Uploading editor to Google Play Store..."
|
|
||||||
python3 "$PYTHON_SCRIPT" "$AAB_FILE" "$NDS_FILE" "$JSON_KEY_FILE" "$VERSION_NAME"
|
|
||||||
@@ -4,18 +4,15 @@ set -e
|
|||||||
|
|
||||||
# Config
|
# Config
|
||||||
|
|
||||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no redirect_build_objects=no"
|
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
||||||
# Keep LTO disabled for iOS - it works but it makes linking apps on deploy very slow,
|
# 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.
|
# which is seen as a regression in the current workflow.
|
||||||
export OPTIONS="production=yes use_lto=no"
|
export OPTIONS="production=yes use_lto=no"
|
||||||
export OPTIONS_MONO="module_mono_enabled=yes"
|
export OPTIONS_MONO="module_mono_enabled=yes"
|
||||||
export TERM=xterm
|
export TERM=xterm
|
||||||
|
|
||||||
export IOS_SDK="18.5"
|
export IOS_SDK="16.1"
|
||||||
export IOS_DEVICE="IOS_SDK_PATH=/root/SDKs/iPhoneOS${IOS_SDK}.sdk"
|
export IOS_LIPO="/root/ioscross/arm64/bin/arm-apple-darwin11-lipo"
|
||||||
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-"
|
|
||||||
|
|
||||||
rm -rf godot
|
rm -rf godot
|
||||||
mkdir godot
|
mkdir godot
|
||||||
@@ -24,54 +21,75 @@ tar xf /root/godot.tar.gz --strip-components=1
|
|||||||
|
|
||||||
# Classical
|
# Classical
|
||||||
|
|
||||||
|
dnf -y install gettext
|
||||||
|
|
||||||
if [ "${CLASSICAL}" == "1" ]; then
|
if [ "${CLASSICAL}" == "1" ]; then
|
||||||
echo "Starting classical build for iOS..."
|
echo "Starting classical build for iOS..."
|
||||||
|
|
||||||
# arm64 device
|
# arm64 device
|
||||||
$SCONS platform=ios $OPTIONS arch=arm64 target=template_debug $IOS_DEVICE $APPLE_TARGET_ARM64
|
$SCONS platform=ios $OPTIONS arch=arm64 ios_simulator=no target=template_debug \
|
||||||
$SCONS platform=ios $OPTIONS arch=arm64 target=template_release $IOS_DEVICE $APPLE_TARGET_ARM64
|
IOS_SDK_PATH="/root/ioscross/arm64/SDK/iPhoneOS${IOS_SDK}.sdk" IOS_TOOLCHAIN_PATH="/root/ioscross/arm64/" ios_triple="arm-apple-darwin11-"
|
||||||
|
$SCONS platform=ios $OPTIONS arch=arm64 ios_simulator=no target=template_release \
|
||||||
|
IOS_SDK_PATH="/root/ioscross/arm64/SDK/iPhoneOS${IOS_SDK}.sdk" IOS_TOOLCHAIN_PATH="/root/ioscross/arm64/" ios_triple="arm-apple-darwin11-"
|
||||||
|
|
||||||
# arm64 simulator
|
# arm64 simulator
|
||||||
# Disabled for now as it doesn't work with cctools-port and current LLVM.
|
# Disabled for now as it doesn't work with cctools-port and current LLVM.
|
||||||
# See https://github.com/godotengine/build-containers/pull/85.
|
# See https://github.com/godotengine/build-containers/pull/85.
|
||||||
#$SCONS platform=ios $OPTIONS arch=arm64 target=template_debug $IOS_SIMULATOR $APPLE_TARGET_ARM64
|
#$SCONS platform=ios $OPTIONS arch=arm64 ios_simulator=yes target=template_debug \
|
||||||
#$SCONS platform=ios $OPTIONS arch=arm64 target=template_release $IOS_SIMULATOR $APPLE_TARGET_ARM64
|
# IOS_SDK_PATH="/root/ioscross/arm64_sim/SDK/iPhoneOS${IOS_SDK}.sdk" IOS_TOOLCHAIN_PATH="/root/ioscross/arm64_sim/" ios_triple="arm-apple-darwin11-"
|
||||||
|
#$SCONS platform=ios $OPTIONS arch=arm64 ios_simulator=no target=template_release \
|
||||||
|
# IOS_SDK_PATH="/root/ioscross/arm64_sim/SDK/iPhoneOS${IOS_SDK}.sdk" IOS_TOOLCHAIN_PATH="/root/ioscross/arm64_sim/" ios_triple="arm-apple-darwin11-"
|
||||||
|
|
||||||
# x86_64 simulator
|
# x86_64 simulator
|
||||||
$SCONS platform=ios $OPTIONS arch=x86_64 target=template_debug $IOS_SIMULATOR $APPLE_TARGET_X86_64
|
$SCONS platform=ios $OPTIONS arch=x86_64 ios_simulator=yes target=template_debug \
|
||||||
$SCONS platform=ios $OPTIONS arch=x86_64 target=template_release $IOS_SIMULATOR $APPLE_TARGET_X86_64
|
IOS_SDK_PATH="/root/ioscross/x86_64_sim/SDK/iPhoneOS${IOS_SDK}.sdk" IOS_TOOLCHAIN_PATH="/root/ioscross/x86_64_sim/" ios_triple="x86_64-apple-darwin11-"
|
||||||
|
$SCONS platform=ios $OPTIONS arch=x86_64 ios_simulator=yes target=template_release \
|
||||||
|
IOS_SDK_PATH="/root/ioscross/x86_64_sim/SDK/iPhoneOS${IOS_SDK}.sdk" IOS_TOOLCHAIN_PATH="/root/ioscross/x86_64_sim/" ios_triple="x86_64-apple-darwin11-"
|
||||||
|
|
||||||
mkdir -p /root/out/templates
|
mkdir -p /root/out/templates
|
||||||
cp bin/libgodot.ios.template_release.arm64.a /root/out/templates/libgodot.ios.a
|
cp bin/libgodot.ios.template_release.arm64.a /root/out/templates/libgodot.ios.a
|
||||||
cp bin/libgodot.ios.template_debug.arm64.a /root/out/templates/libgodot.ios.debug.a
|
cp bin/libgodot.ios.template_debug.arm64.a /root/out/templates/libgodot.ios.debug.a
|
||||||
|
#$IOS_LIPO -create bin/libgodot.ios.template_release.arm64.simulator.a bin/libgodot.ios.template_release.x86_64.simulator.a -output /root/out/templates/libgodot.ios.simulator.a
|
||||||
|
#$IOS_LIPO -create bin/libgodot.ios.template_debug.arm64.simulator.a bin/libgodot.ios.template_debug.x86_64.simulator.a -output /root/out/templates/libgodot.ios.debug.simulator.a
|
||||||
cp bin/libgodot.ios.template_release.x86_64.simulator.a /root/out/templates/libgodot.ios.simulator.a
|
cp bin/libgodot.ios.template_release.x86_64.simulator.a /root/out/templates/libgodot.ios.simulator.a
|
||||||
cp bin/libgodot.ios.template_debug.x86_64.simulator.a /root/out/templates/libgodot.ios.debug.simulator.a
|
cp bin/libgodot.ios.template_debug.x86_64.simulator.a /root/out/templates/libgodot.ios.debug.simulator.a
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Mono
|
# Mono
|
||||||
|
|
||||||
if [ "${MONO}" == "1" ]; then
|
# No iOS support with .NET 6 yet.
|
||||||
|
#if [ "${MONO}" == "1" ]; then
|
||||||
|
if false; then
|
||||||
echo "Starting Mono build for iOS..."
|
echo "Starting Mono build for iOS..."
|
||||||
|
|
||||||
cp -r /root/mono-glue/GodotSharp/GodotSharp/Generated modules/mono/glue/GodotSharp/GodotSharp/
|
cp -r /root/mono-glue/GodotSharp/GodotSharp/Generated modules/mono/glue/GodotSharp/GodotSharp/
|
||||||
|
|
||||||
# arm64 device
|
# arm64 device
|
||||||
$SCONS platform=ios $OPTIONS $OPTIONS_MONO arch=arm64 target=template_debug $IOS_DEVICE $APPLE_TARGET_ARM64
|
$SCONS platform=ios $OPTIONS $OPTIONS_MONO arch=arm64 ios_simulator=no target=template_debug \
|
||||||
$SCONS platform=ios $OPTIONS $OPTIONS_MONO arch=arm64 target=template_release $IOS_DEVICE $APPLE_TARGET_ARM64
|
IOS_SDK_PATH="/root/ioscross/arm64/SDK/iPhoneOS${IOS_SDK}.sdk" IOS_TOOLCHAIN_PATH="/root/ioscross/arm64/" ios_triple="arm-apple-darwin11-"
|
||||||
|
$SCONS platform=ios $OPTIONS $OPTIONS_MONO arch=arm64 ios_simulator=no target=template_release \
|
||||||
|
IOS_SDK_PATH="/root/ioscross/arm64/SDK/iPhoneOS${IOS_SDK}.sdk" IOS_TOOLCHAIN_PATH="/root/ioscross/arm64/" ios_triple="arm-apple-darwin11-"
|
||||||
|
|
||||||
# arm64 simulator
|
# arm64 simulator
|
||||||
# Disabled for now as it doesn't work with cctools-port and current LLVM.
|
# Disabled for now as it doesn't work with cctools-port and current LLVM.
|
||||||
# See https://github.com/godotengine/build-containers/pull/85.
|
# See https://github.com/godotengine/build-containers/pull/85.
|
||||||
#$SCONS platform=ios $OPTIONS $OPTIONS_MONO arch=arm64 target=template_debug $IOS_SIMULATOR $APPLE_TARGET_ARM64
|
#$SCONS platform=ios $OPTIONS $OPTIONS_MONO arch=arm64 ios_simulator=yes target=template_debug \
|
||||||
#$SCONS platform=ios $OPTIONS $OPTIONS_MONO arch=arm64 target=template_release $IOS_SIMULATOR $APPLE_TARGET_ARM64
|
# IOS_SDK_PATH="/root/ioscross/arm64_sim/SDK/iPhoneOS${IOS_SDK}.sdk" IOS_TOOLCHAIN_PATH="/root/ioscross/arm64_sim/" ios_triple="arm-apple-darwin11-"
|
||||||
|
#$SCONS platform=ios $OPTIONS $OPTIONS_MONO arch=arm64 ios_simulator=yes target=template_release \
|
||||||
|
# IOS_SDK_PATH="/root/ioscross/arm64_sim/SDK/iPhoneOS${IOS_SDK}.sdk" IOS_TOOLCHAIN_PATH="/root/ioscross/arm64_sim/" ios_triple="arm-apple-darwin11-"
|
||||||
|
|
||||||
# x86_64 simulator
|
# x86_64 simulator
|
||||||
$SCONS platform=ios $OPTIONS $OPTIONS_MONO arch=x86_64 target=template_debug $IOS_SIMULATOR $APPLE_TARGET_X86_64
|
$SCONS platform=ios $OPTIONS $OPTIONS_MONO arch=x86_64 ios_simulator=yes target=template_debug \
|
||||||
$SCONS platform=ios $OPTIONS $OPTIONS_MONO arch=x86_64 target=template_release $IOS_SIMULATOR $APPLE_TARGET_X86_64
|
IOS_SDK_PATH="/root/ioscross/x86_64_sim/SDK/iPhoneOS${IOS_SDK}.sdk" IOS_TOOLCHAIN_PATH="/root/ioscross/x86_64_sim/" ios_triple="x86_64-apple-darwin11-"
|
||||||
|
$SCONS platform=ios $OPTIONS $OPTIONS_MONO arch=x86_64 ios_simulator=yes target=template_release \
|
||||||
|
IOS_SDK_PATH="/root/ioscross/x86_64_sim/SDK/iPhoneOS${IOS_SDK}.sdk" IOS_TOOLCHAIN_PATH="/root/ioscross/x86_64_sim/" ios_triple="x86_64-apple-darwin11-"
|
||||||
|
|
||||||
mkdir -p /root/out/templates-mono
|
mkdir -p /root/out/templates-mono
|
||||||
|
|
||||||
cp bin/libgodot.ios.template_release.arm64.a /root/out/templates-mono/libgodot.ios.a
|
cp bin/libgodot.ios.template_release.arm64.a /root/out/templates-mono/libgodot.ios.a
|
||||||
cp bin/libgodot.ios.template_debug.arm64.a /root/out/templates-mono/libgodot.ios.debug.a
|
cp bin/libgodot.ios.template_debug.arm64.a /root/out/templates-mono/libgodot.ios.debug.a
|
||||||
|
#$IOS_LIPO -create bin/libgodot.ios.template_release.arm64.simulator.a bin/libgodot.ios.template_release.x86_64.simulator.a -output /root/out/templates-mono/libgodot.ios.simulator.a
|
||||||
|
#$IOS_LIPO -create bin/libgodot.ios.template_debug.arm64.simulator.a bin/libgodot.ios.template_debug.x86_64.simulator.a -output /root/out/templates-mono/libgodot.ios.debug.simulator.a
|
||||||
cp bin/libgodot.ios.template_release.x86_64.simulator.a /root/out/templates-mono/libgodot.ios.simulator.a
|
cp bin/libgodot.ios.template_release.x86_64.simulator.a /root/out/templates-mono/libgodot.ios.simulator.a
|
||||||
cp bin/libgodot.ios.template_debug.x86_64.simulator.a /root/out/templates-mono/libgodot.ios.debug.simulator.a
|
cp bin/libgodot.ios.template_debug.x86_64.simulator.a /root/out/templates-mono/libgodot.ios.debug.simulator.a
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ set -e
|
|||||||
|
|
||||||
# Config
|
# Config
|
||||||
|
|
||||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no redirect_build_objects=no"
|
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
||||||
export OPTIONS="production=yes accesskit_sdk_path=/root/accesskit/accesskit-c"
|
export OPTIONS="production=yes"
|
||||||
export OPTIONS_MONO="module_mono_enabled=yes"
|
export OPTIONS_MONO="module_mono_enabled=yes"
|
||||||
export TERM=xterm
|
export TERM=xterm
|
||||||
|
|
||||||
@@ -14,6 +14,11 @@ mkdir godot
|
|||||||
cd godot
|
cd godot
|
||||||
tar xf /root/godot.tar.gz --strip-components=1
|
tar xf /root/godot.tar.gz --strip-components=1
|
||||||
|
|
||||||
|
# pkg-config wrongly points to lib instead of lib64 for arch-dependent header.
|
||||||
|
sed -i ${GODOT_SDK_LINUX_X86_64}/x86_64-godot-linux-gnu/sysroot/usr/lib/pkgconfig/dbus-1.pc -e "s@/lib@/lib64@g"
|
||||||
|
|
||||||
|
dnf -y install gettext
|
||||||
|
|
||||||
# Classical
|
# Classical
|
||||||
|
|
||||||
if [ "${CLASSICAL}" == "1" ]; then
|
if [ "${CLASSICAL}" == "1" ]; then
|
||||||
@@ -32,7 +37,7 @@ if [ "${CLASSICAL}" == "1" ]; then
|
|||||||
cp -rvp bin/* /root/out/x86_64/templates
|
cp -rvp bin/* /root/out/x86_64/templates
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
|
|
||||||
export PATH="${GODOT_SDK_LINUX_X86_32}/bin:${BASE_PATH}"
|
export PATH="${GODOT_SDK_LINUX_X86}/bin:${BASE_PATH}"
|
||||||
|
|
||||||
$SCONS platform=linuxbsd arch=x86_32 $OPTIONS target=editor
|
$SCONS platform=linuxbsd arch=x86_32 $OPTIONS target=editor
|
||||||
mkdir -p /root/out/x86_32/tools
|
mkdir -p /root/out/x86_32/tools
|
||||||
@@ -44,32 +49,6 @@ if [ "${CLASSICAL}" == "1" ]; then
|
|||||||
mkdir -p /root/out/x86_32/templates
|
mkdir -p /root/out/x86_32/templates
|
||||||
cp -rvp bin/* /root/out/x86_32/templates
|
cp -rvp bin/* /root/out/x86_32/templates
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
|
|
||||||
export PATH="${GODOT_SDK_LINUX_ARM64}/bin:${BASE_PATH}"
|
|
||||||
|
|
||||||
$SCONS platform=linuxbsd arch=arm64 $OPTIONS target=editor
|
|
||||||
mkdir -p /root/out/arm64/tools
|
|
||||||
cp -rvp bin/* /root/out/arm64/tools
|
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
$SCONS platform=linuxbsd arch=arm64 $OPTIONS target=template_debug
|
|
||||||
$SCONS platform=linuxbsd arch=arm64 $OPTIONS target=template_release
|
|
||||||
mkdir -p /root/out/arm64/templates
|
|
||||||
cp -rvp bin/* /root/out/arm64/templates
|
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
export PATH="${GODOT_SDK_LINUX_ARM32}/bin:${BASE_PATH}"
|
|
||||||
|
|
||||||
$SCONS platform=linuxbsd arch=arm32 $OPTIONS target=editor
|
|
||||||
mkdir -p /root/out/arm32/tools
|
|
||||||
cp -rvp bin/* /root/out/arm32/tools
|
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
$SCONS platform=linuxbsd arch=arm32 $OPTIONS target=template_debug
|
|
||||||
$SCONS platform=linuxbsd arch=arm32 $OPTIONS target=template_release
|
|
||||||
mkdir -p /root/out/arm32/templates
|
|
||||||
cp -rvp bin/* /root/out/arm32/templates
|
|
||||||
rm -rf bin
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Mono
|
# Mono
|
||||||
@@ -94,7 +73,7 @@ if [ "${MONO}" == "1" ]; then
|
|||||||
cp -rvp bin/* /root/out/x86_64/templates-mono
|
cp -rvp bin/* /root/out/x86_64/templates-mono
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
|
|
||||||
export PATH="${GODOT_SDK_LINUX_X86_32}/bin:${BASE_PATH}"
|
export PATH="${GODOT_SDK_LINUX_X86}/bin:${BASE_PATH}"
|
||||||
|
|
||||||
$SCONS platform=linuxbsd arch=x86_32 $OPTIONS $OPTIONS_MONO target=editor
|
$SCONS platform=linuxbsd arch=x86_32 $OPTIONS $OPTIONS_MONO target=editor
|
||||||
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd
|
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd
|
||||||
@@ -107,34 +86,6 @@ if [ "${MONO}" == "1" ]; then
|
|||||||
mkdir -p /root/out/x86_32/templates-mono
|
mkdir -p /root/out/x86_32/templates-mono
|
||||||
cp -rvp bin/* /root/out/x86_32/templates-mono
|
cp -rvp bin/* /root/out/x86_32/templates-mono
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
|
|
||||||
export PATH="${GODOT_SDK_LINUX_ARM64}/bin:${BASE_PATH}"
|
|
||||||
|
|
||||||
$SCONS platform=linuxbsd arch=arm64 $OPTIONS $OPTIONS_MONO target=editor
|
|
||||||
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd
|
|
||||||
mkdir -p /root/out/arm64/tools-mono
|
|
||||||
cp -rvp bin/* /root/out/arm64/tools-mono
|
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
$SCONS platform=linuxbsd arch=arm64 $OPTIONS $OPTIONS_MONO target=template_debug
|
|
||||||
$SCONS platform=linuxbsd arch=arm64 $OPTIONS $OPTIONS_MONO target=template_release
|
|
||||||
mkdir -p /root/out/arm64/templates-mono
|
|
||||||
cp -rvp bin/* /root/out/arm64/templates-mono
|
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
export PATH="${GODOT_SDK_LINUX_ARM32}/bin:${BASE_PATH}"
|
|
||||||
|
|
||||||
$SCONS platform=linuxbsd arch=arm32 $OPTIONS $OPTIONS_MONO target=editor
|
|
||||||
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd
|
|
||||||
mkdir -p /root/out/arm32/tools-mono
|
|
||||||
cp -rvp bin/* /root/out/arm32/tools-mono
|
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
$SCONS platform=linuxbsd arch=arm32 $OPTIONS $OPTIONS_MONO target=template_debug
|
|
||||||
$SCONS platform=linuxbsd arch=arm32 $OPTIONS $OPTIONS_MONO target=template_release
|
|
||||||
mkdir -p /root/out/arm32/templates-mono
|
|
||||||
cp -rvp bin/* /root/out/arm32/templates-mono
|
|
||||||
rm -rf bin
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Linux build successful"
|
echo "Linux build successful"
|
||||||
|
|||||||
@@ -4,9 +4,10 @@ set -e
|
|||||||
|
|
||||||
# Config
|
# Config
|
||||||
|
|
||||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no redirect_build_objects=no"
|
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=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=darwin22 production=yes use_volk=no vulkan_sdk_path=/root/vulkansdk"
|
||||||
export OPTIONS_MONO="module_mono_enabled=yes"
|
export OPTIONS_MONO="module_mono_enabled=yes"
|
||||||
|
export STRIP="x86_64-apple-darwin22-strip -u -r"
|
||||||
export TERM=xterm
|
export TERM=xterm
|
||||||
|
|
||||||
rm -rf godot
|
rm -rf godot
|
||||||
@@ -16,12 +17,15 @@ tar xf /root/godot.tar.gz --strip-components=1
|
|||||||
|
|
||||||
# Classical
|
# Classical
|
||||||
|
|
||||||
|
dnf -y install gettext
|
||||||
|
|
||||||
if [ "${CLASSICAL}" == "1" ]; then
|
if [ "${CLASSICAL}" == "1" ]; then
|
||||||
echo "Starting classical build for macOS..."
|
echo "Starting classical build for macOS..."
|
||||||
|
|
||||||
$SCONS platform=macos $OPTIONS arch=x86_64 target=editor
|
$SCONS platform=macos $OPTIONS arch=x86_64 target=editor
|
||||||
$SCONS platform=macos $OPTIONS arch=arm64 target=editor
|
$SCONS platform=macos $OPTIONS arch=arm64 target=editor
|
||||||
lipo -create bin/godot.macos.editor.x86_64 bin/godot.macos.editor.arm64 -output bin/godot.macos.editor.universal
|
lipo -create bin/godot.macos.editor.x86_64 bin/godot.macos.editor.arm64 -output bin/godot.macos.editor.universal
|
||||||
|
$STRIP bin/godot.macos.editor.universal
|
||||||
|
|
||||||
mkdir -p /root/out/tools
|
mkdir -p /root/out/tools
|
||||||
cp -rvp bin/* /root/out/tools
|
cp -rvp bin/* /root/out/tools
|
||||||
@@ -30,9 +34,11 @@ if [ "${CLASSICAL}" == "1" ]; then
|
|||||||
$SCONS platform=macos $OPTIONS arch=x86_64 target=template_debug
|
$SCONS platform=macos $OPTIONS arch=x86_64 target=template_debug
|
||||||
$SCONS platform=macos $OPTIONS arch=arm64 target=template_debug
|
$SCONS platform=macos $OPTIONS arch=arm64 target=template_debug
|
||||||
lipo -create bin/godot.macos.template_debug.x86_64 bin/godot.macos.template_debug.arm64 -output bin/godot.macos.template_debug.universal
|
lipo -create bin/godot.macos.template_debug.x86_64 bin/godot.macos.template_debug.arm64 -output bin/godot.macos.template_debug.universal
|
||||||
|
$STRIP bin/godot.macos.template_debug.universal
|
||||||
$SCONS platform=macos $OPTIONS arch=x86_64 target=template_release
|
$SCONS platform=macos $OPTIONS arch=x86_64 target=template_release
|
||||||
$SCONS platform=macos $OPTIONS arch=arm64 target=template_release
|
$SCONS platform=macos $OPTIONS arch=arm64 target=template_release
|
||||||
lipo -create bin/godot.macos.template_release.x86_64 bin/godot.macos.template_release.arm64 -output bin/godot.macos.template_release.universal
|
lipo -create bin/godot.macos.template_release.x86_64 bin/godot.macos.template_release.arm64 -output bin/godot.macos.template_release.universal
|
||||||
|
$STRIP bin/godot.macos.template_release.universal
|
||||||
|
|
||||||
mkdir -p /root/out/templates
|
mkdir -p /root/out/templates
|
||||||
cp -rvp bin/* /root/out/templates
|
cp -rvp bin/* /root/out/templates
|
||||||
@@ -50,6 +56,7 @@ if [ "${MONO}" == "1" ]; then
|
|||||||
$SCONS platform=macos $OPTIONS $OPTIONS_MONO arch=x86_64 target=editor
|
$SCONS platform=macos $OPTIONS $OPTIONS_MONO arch=x86_64 target=editor
|
||||||
$SCONS platform=macos $OPTIONS $OPTIONS_MONO arch=arm64 target=editor
|
$SCONS platform=macos $OPTIONS $OPTIONS_MONO arch=arm64 target=editor
|
||||||
lipo -create bin/godot.macos.editor.x86_64.mono bin/godot.macos.editor.arm64.mono -output bin/godot.macos.editor.universal.mono
|
lipo -create bin/godot.macos.editor.x86_64.mono bin/godot.macos.editor.arm64.mono -output bin/godot.macos.editor.universal.mono
|
||||||
|
$STRIP bin/godot.macos.editor.universal.mono
|
||||||
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=macos
|
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=macos
|
||||||
|
|
||||||
mkdir -p /root/out/tools-mono
|
mkdir -p /root/out/tools-mono
|
||||||
@@ -59,9 +66,11 @@ if [ "${MONO}" == "1" ]; then
|
|||||||
$SCONS platform=macos $OPTIONS $OPTIONS_MONO arch=x86_64 target=template_debug
|
$SCONS platform=macos $OPTIONS $OPTIONS_MONO arch=x86_64 target=template_debug
|
||||||
$SCONS platform=macos $OPTIONS $OPTIONS_MONO arch=arm64 target=template_debug
|
$SCONS platform=macos $OPTIONS $OPTIONS_MONO arch=arm64 target=template_debug
|
||||||
lipo -create bin/godot.macos.template_debug.x86_64.mono bin/godot.macos.template_debug.arm64.mono -output bin/godot.macos.template_debug.universal.mono
|
lipo -create bin/godot.macos.template_debug.x86_64.mono bin/godot.macos.template_debug.arm64.mono -output bin/godot.macos.template_debug.universal.mono
|
||||||
|
$STRIP bin/godot.macos.template_debug.universal.mono
|
||||||
$SCONS platform=macos $OPTIONS $OPTIONS_MONO arch=x86_64 target=template_release
|
$SCONS platform=macos $OPTIONS $OPTIONS_MONO arch=x86_64 target=template_release
|
||||||
$SCONS platform=macos $OPTIONS $OPTIONS_MONO arch=arm64 target=template_release
|
$SCONS platform=macos $OPTIONS $OPTIONS_MONO arch=arm64 target=template_release
|
||||||
lipo -create bin/godot.macos.template_release.x86_64.mono bin/godot.macos.template_release.arm64.mono -output bin/godot.macos.template_release.universal.mono
|
lipo -create bin/godot.macos.template_release.x86_64.mono bin/godot.macos.template_release.arm64.mono -output bin/godot.macos.template_release.universal.mono
|
||||||
|
$STRIP bin/godot.macos.template_release.universal.mono
|
||||||
|
|
||||||
mkdir -p /root/out/templates-mono
|
mkdir -p /root/out/templates-mono
|
||||||
cp -rvp bin/* /root/out/templates-mono
|
cp -rvp bin/* /root/out/templates-mono
|
||||||
|
|||||||
@@ -15,12 +15,20 @@ mkdir godot
|
|||||||
cd godot
|
cd godot
|
||||||
tar xf ../godot.tar.gz --strip-components=1
|
tar xf ../godot.tar.gz --strip-components=1
|
||||||
|
|
||||||
|
# pkg-config wrongly points to lib instead of lib64 for arch-dependent header.
|
||||||
|
sed -i ${GODOT_SDK_LINUX_X86_64}/x86_64-godot-linux-gnu/sysroot/usr/lib/pkgconfig/dbus-1.pc -e "s@/lib@/lib64@g"
|
||||||
|
|
||||||
|
# Temporarily until we make --headless mode actually skip X11.
|
||||||
|
dnf install -y libX11 libXcursor libXrandr libXinerama libXi mesa-libGL
|
||||||
|
dnf -y install gettext
|
||||||
|
|
||||||
# Mono
|
# Mono
|
||||||
|
|
||||||
if [ "${MONO}" == "1" ]; then
|
if [ "${MONO}" == "1" ]; then
|
||||||
echo "Building and generating Mono glue..."
|
echo "Building and generating Mono glue..."
|
||||||
|
|
||||||
dotnet --info
|
dotnet --info
|
||||||
|
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig/
|
||||||
|
|
||||||
${SCONS} platform=linuxbsd ${OPTIONS} target=editor module_mono_enabled=yes
|
${SCONS} platform=linuxbsd ${OPTIONS} target=editor module_mono_enabled=yes
|
||||||
|
|
||||||
|
|||||||
251
build-release.sh
251
build-release.sh
@@ -1,10 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
export basedir=$(pwd)
|
|
||||||
|
|
||||||
# Log output to a file automatically.
|
|
||||||
exec > >(tee -a "out/logs/build-release") 2>&1
|
|
||||||
|
|
||||||
# Config
|
# Config
|
||||||
|
|
||||||
@@ -12,17 +8,17 @@ exec > >(tee -a "out/logs/build-release") 2>&1
|
|||||||
source ./config.sh
|
source ./config.sh
|
||||||
|
|
||||||
can_sign_windows=0
|
can_sign_windows=0
|
||||||
if [ ! -z "${WINDOWS_SIGN_NAME}" ] && [ ! -z "${WINDOWS_SIGN_URL}" ] && [[ $(type -P "osslsigncode") ]]; then
|
if [ ! -z "${SIGN_KEYSTORE}" ] && [ ! -z "${SIGN_PASSWORD}" ] && [[ $(type -P "osslsigncode") ]]; then
|
||||||
can_sign_windows=1
|
can_sign_windows=1
|
||||||
else
|
else
|
||||||
echo "Disabling Windows binary signing as config.sh does not define the required data (WINDOWS_SIGN_NAME, WINDOWS_SIGN_URL), or osslsigncode can't be found in PATH."
|
echo "Disabling Windows binary signing as config.sh does not define the required data (SIGN_KEYSTORE, SIGN_PASSWORD), or osslsigncode can't be found in PATH."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sign_windows() {
|
sign_windows() {
|
||||||
if [ $can_sign_windows == 0 ]; then
|
if [ $can_sign_windows == 0 ]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
P11_KIT_SERVER_ADDRESS=unix:path=/run/p11-kit/p11kit.sock osslsigncode sign -pkcs11module /usr/lib64/pkcs11/p11-kit-client.so -pkcs11cert 'pkcs11:model=SimplySign%20C' -key 'pkcs11:model=SimplySign%20C' -t http://time.certum.pl/ -n "${WINDOWS_SIGN_NAME}" -i "${WINDOWS_SIGN_URL}" -in $1 -out $1-signed
|
osslsigncode sign -pkcs12 ${SIGN_KEYSTORE} -pass "${SIGN_PASSWORD}" -n "${SIGN_NAME}" -i "${SIGN_URL}" -t http://timestamp.comodoca.com -in $1 -out $1-signed
|
||||||
mv $1-signed $1
|
mv $1-signed $1
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,12 +87,29 @@ sign_macos_template() {
|
|||||||
ssh "${OSX_HOST}" "rm -rf ${_macos_tmpdir}"
|
ssh "${OSX_HOST}" "rm -rf ${_macos_tmpdir}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
can_publish_nuget=0
|
||||||
|
if [ ! -z "${NUGET_SOURCE}" ] && [ ! -z "${NUGET_API_KEY}" ] && [[ $(type -P "dotnet") ]]; then
|
||||||
|
can_publish_nuget=1
|
||||||
|
else
|
||||||
|
echo "Disabling NuGet package publishing as config.sh does not define the required data (NUGET_SOURCE, NUGET_API_KEY), or dotnet can't be found in PATH."
|
||||||
|
fi
|
||||||
|
|
||||||
|
publish_nuget_packages() {
|
||||||
|
if [ $can_publish_nuget == 0 ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
for pkg in "$@"; do
|
||||||
|
dotnet nuget push $pkg --source "${NUGET_SOURCE}" --api-key "${NUGET_API_KEY}" --skip-duplicate
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
godot_version=""
|
godot_version=""
|
||||||
templates_version=""
|
templates_version=""
|
||||||
do_cleanup=1
|
do_cleanup=1
|
||||||
make_tarball=1
|
make_tarball=1
|
||||||
build_classical=1
|
build_classical=1
|
||||||
build_mono=1
|
build_mono=1
|
||||||
|
publish_nuget=0
|
||||||
|
|
||||||
while getopts "h?v:t:b:n-:" opt; do
|
while getopts "h?v:t:b:n-:" opt; do
|
||||||
case "$opt" in
|
case "$opt" in
|
||||||
@@ -106,6 +119,7 @@ while getopts "h?v:t:b:n-:" opt; do
|
|||||||
echo " -v godot version (e.g: 3.2-stable) [mandatory]"
|
echo " -v godot version (e.g: 3.2-stable) [mandatory]"
|
||||||
echo " -t templates 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|none (default: all)"
|
||||||
|
echo " -n publish nuget packages (default: false)"
|
||||||
echo " --no-cleanup disable deleting pre-existing output folders (default: false)"
|
echo " --no-cleanup disable deleting pre-existing output folders (default: false)"
|
||||||
echo " --no-tarball disable generating source tarball (default: false)"
|
echo " --no-tarball disable generating source tarball (default: false)"
|
||||||
echo
|
echo
|
||||||
@@ -127,6 +141,9 @@ while getopts "h?v:t:b:n-:" opt; do
|
|||||||
build_mono=0
|
build_mono=0
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
n)
|
||||||
|
publish_nuget=1
|
||||||
|
;;
|
||||||
-)
|
-)
|
||||||
case "${OPTARG}" in
|
case "${OPTARG}" in
|
||||||
no-cleanup)
|
no-cleanup)
|
||||||
@@ -154,13 +171,13 @@ elif [[ "{$templates_version}" == *"-"* ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
export basedir=$(pwd)
|
||||||
|
export webdir="${basedir}/web/${templates_version}"
|
||||||
export reldir="${basedir}/releases/${godot_version}"
|
export reldir="${basedir}/releases/${godot_version}"
|
||||||
export reldir_mono="${reldir}/mono"
|
export reldir_mono="${reldir}/mono"
|
||||||
export tmpdir="${basedir}/tmp"
|
export tmpdir="${basedir}/tmp"
|
||||||
export templatesdir="${tmpdir}/templates"
|
export templatesdir="${tmpdir}/templates"
|
||||||
export templatesdir_mono="${tmpdir}/mono/templates"
|
export templatesdir_mono="${tmpdir}/mono/templates"
|
||||||
export webdir="${basedir}/web/${templates_version}"
|
|
||||||
export steamdir="${basedir}/steam"
|
|
||||||
|
|
||||||
export godot_basename="Godot_v${godot_version}"
|
export godot_basename="Godot_v${godot_version}"
|
||||||
|
|
||||||
@@ -168,19 +185,15 @@ export godot_basename="Godot_v${godot_version}"
|
|||||||
|
|
||||||
if [ "${do_cleanup}" == "1" ]; then
|
if [ "${do_cleanup}" == "1" ]; then
|
||||||
|
|
||||||
|
rm -rf ${webdir}
|
||||||
rm -rf ${reldir}
|
rm -rf ${reldir}
|
||||||
rm -rf ${tmpdir}
|
rm -rf ${tmpdir}
|
||||||
rm -rf ${webdir}
|
|
||||||
rm -rf ${steamdir}
|
|
||||||
|
|
||||||
|
mkdir -p ${webdir}
|
||||||
mkdir -p ${reldir}
|
mkdir -p ${reldir}
|
||||||
mkdir -p ${reldir_mono}
|
mkdir -p ${reldir_mono}
|
||||||
mkdir -p ${templatesdir}
|
mkdir -p ${templatesdir}
|
||||||
mkdir -p ${templatesdir_mono}
|
mkdir -p ${templatesdir_mono}
|
||||||
mkdir -p ${webdir}
|
|
||||||
if [ -d out/windows/steam ]; then
|
|
||||||
mkdir -p ${steamdir}
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -204,40 +217,22 @@ if [ "${build_classical}" == "1" ]; then
|
|||||||
# Editor
|
# Editor
|
||||||
binname="${godot_basename}_linux.x86_64"
|
binname="${godot_basename}_linux.x86_64"
|
||||||
cp out/linux/x86_64/tools/godot.linuxbsd.editor.x86_64 ${binname}
|
cp out/linux/x86_64/tools/godot.linuxbsd.editor.x86_64 ${binname}
|
||||||
|
strip ${binname}
|
||||||
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
||||||
rm ${binname}
|
rm ${binname}
|
||||||
|
|
||||||
binname="${godot_basename}_linux.x86_32"
|
binname="${godot_basename}_linux.x86_32"
|
||||||
cp out/linux/x86_32/tools/godot.linuxbsd.editor.x86_32 ${binname}
|
cp out/linux/x86_32/tools/godot.linuxbsd.editor.x86_32 ${binname}
|
||||||
|
strip ${binname}
|
||||||
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
||||||
rm ${binname}
|
rm ${binname}
|
||||||
|
|
||||||
binname="${godot_basename}_linux.arm64"
|
|
||||||
cp out/linux/arm64/tools/godot.linuxbsd.editor.arm64 ${binname}
|
|
||||||
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
|
||||||
rm ${binname}
|
|
||||||
|
|
||||||
binname="${godot_basename}_linux.arm32"
|
|
||||||
cp out/linux/arm32/tools/godot.linuxbsd.editor.arm32 ${binname}
|
|
||||||
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
|
||||||
rm ${binname}
|
|
||||||
|
|
||||||
# ICU data
|
|
||||||
if [ -f ${basedir}/git/thirdparty/icu4c/icudt_godot.dat ]; then
|
|
||||||
cp ${basedir}/git/thirdparty/icu4c/icudt_godot.dat ${templatesdir}/icudt_godot.dat
|
|
||||||
else
|
|
||||||
echo "icudt_godot.dat" not found.
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Templates
|
# Templates
|
||||||
cp out/linux/x86_64/templates/godot.linuxbsd.template_release.x86_64 ${templatesdir}/linux_release.x86_64
|
cp out/linux/x86_64/templates/godot.linuxbsd.template_release.x86_64 ${templatesdir}/linux_release.x86_64
|
||||||
cp out/linux/x86_64/templates/godot.linuxbsd.template_debug.x86_64 ${templatesdir}/linux_debug.x86_64
|
cp out/linux/x86_64/templates/godot.linuxbsd.template_debug.x86_64 ${templatesdir}/linux_debug.x86_64
|
||||||
cp out/linux/x86_32/templates/godot.linuxbsd.template_release.x86_32 ${templatesdir}/linux_release.x86_32
|
cp out/linux/x86_32/templates/godot.linuxbsd.template_release.x86_32 ${templatesdir}/linux_release.x86_32
|
||||||
cp out/linux/x86_32/templates/godot.linuxbsd.template_debug.x86_32 ${templatesdir}/linux_debug.x86_32
|
cp out/linux/x86_32/templates/godot.linuxbsd.template_debug.x86_32 ${templatesdir}/linux_debug.x86_32
|
||||||
cp out/linux/arm64/templates/godot.linuxbsd.template_release.arm64 ${templatesdir}/linux_release.arm64
|
strip ${templatesdir}/linux*
|
||||||
cp out/linux/arm64/templates/godot.linuxbsd.template_debug.arm64 ${templatesdir}/linux_debug.arm64
|
|
||||||
cp out/linux/arm32/templates/godot.linuxbsd.template_release.arm32 ${templatesdir}/linux_release.arm32
|
|
||||||
cp out/linux/arm32/templates/godot.linuxbsd.template_debug.arm32 ${templatesdir}/linux_debug.arm32
|
|
||||||
|
|
||||||
## Windows (Classical) ##
|
## Windows (Classical) ##
|
||||||
|
|
||||||
@@ -245,8 +240,10 @@ if [ "${build_classical}" == "1" ]; then
|
|||||||
binname="${godot_basename}_win64.exe"
|
binname="${godot_basename}_win64.exe"
|
||||||
wrpname="${godot_basename}_win64_console.exe"
|
wrpname="${godot_basename}_win64_console.exe"
|
||||||
cp out/windows/x86_64/tools/godot.windows.editor.x86_64.exe ${binname}
|
cp out/windows/x86_64/tools/godot.windows.editor.x86_64.exe ${binname}
|
||||||
|
strip ${binname}
|
||||||
sign_windows ${binname}
|
sign_windows ${binname}
|
||||||
cp out/windows/x86_64/tools/godot.windows.editor.x86_64.console.exe ${wrpname}
|
cp out/windows/x86_64/tools/godot.windows.editor.x86_64.console.exe ${wrpname}
|
||||||
|
strip ${wrpname}
|
||||||
sign_windows ${wrpname}
|
sign_windows ${wrpname}
|
||||||
zip -q -9 "${reldir}/${binname}.zip" ${binname} ${wrpname}
|
zip -q -9 "${reldir}/${binname}.zip" ${binname} ${wrpname}
|
||||||
rm ${binname} ${wrpname}
|
rm ${binname} ${wrpname}
|
||||||
@@ -254,17 +251,10 @@ if [ "${build_classical}" == "1" ]; then
|
|||||||
binname="${godot_basename}_win32.exe"
|
binname="${godot_basename}_win32.exe"
|
||||||
wrpname="${godot_basename}_win32_console.exe"
|
wrpname="${godot_basename}_win32_console.exe"
|
||||||
cp out/windows/x86_32/tools/godot.windows.editor.x86_32.exe ${binname}
|
cp out/windows/x86_32/tools/godot.windows.editor.x86_32.exe ${binname}
|
||||||
|
strip ${binname}
|
||||||
sign_windows ${binname}
|
sign_windows ${binname}
|
||||||
cp out/windows/x86_32/tools/godot.windows.editor.x86_32.console.exe ${wrpname}
|
cp out/windows/x86_32/tools/godot.windows.editor.x86_32.console.exe ${wrpname}
|
||||||
sign_windows ${wrpname}
|
strip ${wrpname}
|
||||||
zip -q -9 "${reldir}/${binname}.zip" ${binname} ${wrpname}
|
|
||||||
rm ${binname} ${wrpname}
|
|
||||||
|
|
||||||
binname="${godot_basename}_windows_arm64.exe"
|
|
||||||
wrpname="${godot_basename}_windows_arm64_console.exe"
|
|
||||||
cp out/windows/arm64/tools/godot.windows.editor.arm64.llvm.exe ${binname}
|
|
||||||
sign_windows ${binname}
|
|
||||||
cp out/windows/arm64/tools/godot.windows.editor.arm64.llvm.console.exe ${wrpname}
|
|
||||||
sign_windows ${wrpname}
|
sign_windows ${wrpname}
|
||||||
zip -q -9 "${reldir}/${binname}.zip" ${binname} ${wrpname}
|
zip -q -9 "${reldir}/${binname}.zip" ${binname} ${wrpname}
|
||||||
rm ${binname} ${wrpname}
|
rm ${binname} ${wrpname}
|
||||||
@@ -274,14 +264,11 @@ if [ "${build_classical}" == "1" ]; then
|
|||||||
cp out/windows/x86_64/templates/godot.windows.template_debug.x86_64.exe ${templatesdir}/windows_debug_x86_64.exe
|
cp out/windows/x86_64/templates/godot.windows.template_debug.x86_64.exe ${templatesdir}/windows_debug_x86_64.exe
|
||||||
cp out/windows/x86_32/templates/godot.windows.template_release.x86_32.exe ${templatesdir}/windows_release_x86_32.exe
|
cp out/windows/x86_32/templates/godot.windows.template_release.x86_32.exe ${templatesdir}/windows_release_x86_32.exe
|
||||||
cp out/windows/x86_32/templates/godot.windows.template_debug.x86_32.exe ${templatesdir}/windows_debug_x86_32.exe
|
cp out/windows/x86_32/templates/godot.windows.template_debug.x86_32.exe ${templatesdir}/windows_debug_x86_32.exe
|
||||||
cp out/windows/arm64/templates/godot.windows.template_release.arm64.llvm.exe ${templatesdir}/windows_release_arm64.exe
|
|
||||||
cp out/windows/arm64/templates/godot.windows.template_debug.arm64.llvm.exe ${templatesdir}/windows_debug_arm64.exe
|
|
||||||
cp out/windows/x86_64/templates/godot.windows.template_release.x86_64.console.exe ${templatesdir}/windows_release_x86_64_console.exe
|
cp out/windows/x86_64/templates/godot.windows.template_release.x86_64.console.exe ${templatesdir}/windows_release_x86_64_console.exe
|
||||||
cp out/windows/x86_64/templates/godot.windows.template_debug.x86_64.console.exe ${templatesdir}/windows_debug_x86_64_console.exe
|
cp out/windows/x86_64/templates/godot.windows.template_debug.x86_64.console.exe ${templatesdir}/windows_debug_x86_64_console.exe
|
||||||
cp out/windows/x86_32/templates/godot.windows.template_release.x86_32.console.exe ${templatesdir}/windows_release_x86_32_console.exe
|
cp out/windows/x86_32/templates/godot.windows.template_release.x86_32.console.exe ${templatesdir}/windows_release_x86_32_console.exe
|
||||||
cp out/windows/x86_32/templates/godot.windows.template_debug.x86_32.console.exe ${templatesdir}/windows_debug_x86_32_console.exe
|
cp out/windows/x86_32/templates/godot.windows.template_debug.x86_32.console.exe ${templatesdir}/windows_debug_x86_32_console.exe
|
||||||
cp out/windows/arm64/templates/godot.windows.template_release.arm64.llvm.console.exe ${templatesdir}/windows_release_arm64_console.exe
|
strip ${templatesdir}/windows*.exe
|
||||||
cp out/windows/arm64/templates/godot.windows.template_debug.arm64.llvm.console.exe ${templatesdir}/windows_debug_arm64_console.exe
|
|
||||||
|
|
||||||
## macOS (Classical) ##
|
## macOS (Classical) ##
|
||||||
|
|
||||||
@@ -308,20 +295,6 @@ if [ "${build_classical}" == "1" ]; then
|
|||||||
rm -rf macos_template.app
|
rm -rf macos_template.app
|
||||||
sign_macos_template ${templatesdir} 0
|
sign_macos_template ${templatesdir} 0
|
||||||
|
|
||||||
## Steam (Classical) ##
|
|
||||||
|
|
||||||
if [ -d out/windows/steam ]; then
|
|
||||||
cp out/windows/steam/godot.windows.editor.x86_64.exe ${steamdir}/godot.windows.opt.tools.64.exe
|
|
||||||
cp out/windows/steam/godot.windows.editor.x86_32.exe ${steamdir}/godot.windows.opt.tools.32.exe
|
|
||||||
sign_windows ${steamdir}/godot.windows.opt.tools.64.exe
|
|
||||||
sign_windows ${steamdir}/godot.windows.opt.tools.32.exe
|
|
||||||
unzip ${reldir}/${godot_basename}_linux.x86_64.zip -d ${steamdir}/
|
|
||||||
unzip ${reldir}/${godot_basename}_linux.x86_32.zip -d ${steamdir}/
|
|
||||||
mv ${steamdir}/{${godot_basename}_linux.x86_64,godot.x11.opt.tools.64}
|
|
||||||
mv ${steamdir}/{${godot_basename}_linux.x86_32,godot.x11.opt.tools.32}
|
|
||||||
unzip ${reldir}/${godot_basename}_macos.universal -d ${steamdir}/
|
|
||||||
fi
|
|
||||||
|
|
||||||
## Web (Classical) ##
|
## Web (Classical) ##
|
||||||
|
|
||||||
# Editor
|
# Editor
|
||||||
@@ -334,15 +307,9 @@ if [ "${build_classical}" == "1" ]; then
|
|||||||
cp out/web/templates/godot.web.template_release.wasm32.zip ${templatesdir}/web_release.zip
|
cp out/web/templates/godot.web.template_release.wasm32.zip ${templatesdir}/web_release.zip
|
||||||
cp out/web/templates/godot.web.template_debug.wasm32.zip ${templatesdir}/web_debug.zip
|
cp out/web/templates/godot.web.template_debug.wasm32.zip ${templatesdir}/web_debug.zip
|
||||||
|
|
||||||
cp out/web/templates/godot.web.template_release.wasm32.nothreads.zip ${templatesdir}/web_nothreads_release.zip
|
|
||||||
cp out/web/templates/godot.web.template_debug.wasm32.nothreads.zip ${templatesdir}/web_nothreads_debug.zip
|
|
||||||
|
|
||||||
cp out/web/templates/godot.web.template_release.wasm32.dlink.zip ${templatesdir}/web_dlink_release.zip
|
cp out/web/templates/godot.web.template_release.wasm32.dlink.zip ${templatesdir}/web_dlink_release.zip
|
||||||
cp out/web/templates/godot.web.template_debug.wasm32.dlink.zip ${templatesdir}/web_dlink_debug.zip
|
cp out/web/templates/godot.web.template_debug.wasm32.dlink.zip ${templatesdir}/web_dlink_debug.zip
|
||||||
|
|
||||||
cp out/web/templates/godot.web.template_release.wasm32.nothreads.dlink.zip ${templatesdir}/web_dlink_nothreads_release.zip
|
|
||||||
cp out/web/templates/godot.web.template_debug.wasm32.nothreads.dlink.zip ${templatesdir}/web_dlink_nothreads_debug.zip
|
|
||||||
|
|
||||||
## Android (Classical) ##
|
## Android (Classical) ##
|
||||||
|
|
||||||
# Lib for direct download
|
# Lib for direct download
|
||||||
@@ -351,10 +318,6 @@ if [ "${build_classical}" == "1" ]; then
|
|||||||
# Editor
|
# Editor
|
||||||
binname="${godot_basename}_android_editor.apk"
|
binname="${godot_basename}_android_editor.apk"
|
||||||
cp out/android/tools/android_editor.apk ${reldir}/${binname}
|
cp out/android/tools/android_editor.apk ${reldir}/${binname}
|
||||||
binname="${godot_basename}_android_editor_horizonos.apk"
|
|
||||||
cp out/android/tools/android_editor_horizonos.apk ${reldir}/${binname}
|
|
||||||
binname="${godot_basename}_android_editor_picoos.apk"
|
|
||||||
cp out/android/tools/android_editor_picoos.apk ${reldir}/${binname}
|
|
||||||
binname="${godot_basename}_android_editor.aab"
|
binname="${godot_basename}_android_editor.aab"
|
||||||
cp out/android/tools/android_editor.aab ${reldir}/${binname}
|
cp out/android/tools/android_editor.aab ${reldir}/${binname}
|
||||||
|
|
||||||
@@ -362,10 +325,6 @@ if [ "${build_classical}" == "1" ]; then
|
|||||||
cp out/android/templates/*.apk ${templatesdir}/
|
cp out/android/templates/*.apk ${templatesdir}/
|
||||||
cp out/android/templates/android_source.zip ${templatesdir}/
|
cp out/android/templates/android_source.zip ${templatesdir}/
|
||||||
|
|
||||||
# Native debug symbols
|
|
||||||
cp out/android/templates/android_release_template_native_debug_symbols.zip ${reldir}/Godot_native_debug_symbols.${templates_version}.template_release.android.zip
|
|
||||||
cp out/android/tools/android_editor_native_debug_symbols.zip ${reldir}/Godot_native_debug_symbols.${templates_version}.editor.android.zip
|
|
||||||
|
|
||||||
## iOS (Classical) ##
|
## iOS (Classical) ##
|
||||||
|
|
||||||
rm -rf ios_xcode
|
rm -rf ios_xcode
|
||||||
@@ -374,23 +333,49 @@ if [ "${build_classical}" == "1" ]; then
|
|||||||
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.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
|
cp out/ios/templates/libgodot.ios.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64/libgodot.a
|
||||||
cp out/ios/templates/libgodot.ios.debug.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64/libgodot.a
|
cp out/ios/templates/libgodot.ios.debug.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64/libgodot.a
|
||||||
cp -r deps/moltenvk/MoltenVK/MoltenVK.xcframework ios_xcode/
|
cp -r deps/vulkansdk-macos/MoltenVK/MoltenVK.xcframework ios_xcode/
|
||||||
rm -rf ios_xcode/MoltenVK.xcframework/{macos,tvos}*
|
rm -rf ios_xcode/MoltenVK.xcframework/{macos,tvos}*
|
||||||
cd ios_xcode
|
cd ios_xcode
|
||||||
zip -q -9 -r "${templatesdir}/ios.zip" *
|
zip -q -9 -r "${templatesdir}/ios.zip" *
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf ios_xcode
|
rm -rf ios_xcode
|
||||||
|
|
||||||
## visionOS (Classical) ##
|
# ## UWP (Classical) ##
|
||||||
|
#
|
||||||
rm -rf visionos_xcode
|
# if [ ! -d "deps/angle" ]; then
|
||||||
cp -r git/misc/dist/visionos_xcode visionos_xcode
|
# echo "Downloading ANGLE binaries from https://github.com/GodotBuilder/godot-builds/releases/tag/_tools"
|
||||||
cp out/visionos/templates/libgodot.visionos.a visionos_xcode/libgodot.visionos.release.xcframework/xros-arm64/libgodot.a
|
# mkdir -p deps && cd deps
|
||||||
cp out/visionos/templates/libgodot.visionos.debug.a visionos_xcode/libgodot.visionos.debug.xcframework/xros-arm64/libgodot.a
|
# curl -LO https://github.com/GodotBuilder/godot-builds/releases/download/_tools/angle.7z
|
||||||
cd visionos_xcode
|
# 7z x angle.7z && rm -f angle.7z
|
||||||
zip -q -9 -r "${templatesdir}/visionos.zip" *
|
# cd ..
|
||||||
cd ..
|
# fi
|
||||||
rm -rf visionos_xcode
|
#
|
||||||
|
# rm -rf uwp_template_*
|
||||||
|
# for arch in ARM Win32 x64; do
|
||||||
|
# cp -r git/misc/dist/uwp_template uwp_template_${arch}
|
||||||
|
# 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
|
||||||
|
#
|
||||||
|
# cp out/uwp/arm/godot.uwp.template_release.32.arm.exe uwp_template_ARM/godot.uwp.exe
|
||||||
|
# cp out/uwp/arm/godot.uwp.template_debug.32.arm.exe uwp_template_ARM_debug/godot.uwp.exe
|
||||||
|
# cd uwp_template_ARM && zip -q -9 -r "${templatesdir}/uwp_arm_release.zip" * && cd ..
|
||||||
|
# cd uwp_template_ARM_debug && zip -q -9 -r "${templatesdir}/uwp_arm_debug.zip" * && cd ..
|
||||||
|
# rm -rf uwp_template_ARM*
|
||||||
|
#
|
||||||
|
# cp out/uwp/x86/godot.uwp.template_release.32.x86.exe uwp_template_Win32/godot.uwp.exe
|
||||||
|
# cp out/uwp/x86/godot.uwp.template_debug.32.x86.exe uwp_template_Win32_debug/godot.uwp.exe
|
||||||
|
# cd uwp_template_Win32 && zip -q -9 -r "${templatesdir}/uwp_x86_release.zip" * && cd ..
|
||||||
|
# cd uwp_template_Win32_debug && zip -q -9 -r "${templatesdir}/uwp_x86_debug.zip" * && cd ..
|
||||||
|
# rm -rf uwp_template_Win32*
|
||||||
|
#
|
||||||
|
# cp out/uwp/x64/godot.uwp.template_release.64.x64.exe uwp_template_x64/godot.uwp.exe
|
||||||
|
# cp out/uwp/x64/godot.uwp.template_debug.64.x64.exe uwp_template_x64_debug/godot.uwp.exe
|
||||||
|
# cd uwp_template_x64 && zip -q -9 -r "${templatesdir}/uwp_x64_release.zip" * && cd ..
|
||||||
|
# cd uwp_template_x64_debug && zip -q -9 -r "${templatesdir}/uwp_x64_debug.zip" * && cd ..
|
||||||
|
# rm -rf uwp_template_x64*
|
||||||
|
|
||||||
## Templates TPZ (Classical) ##
|
## Templates TPZ (Classical) ##
|
||||||
|
|
||||||
@@ -419,6 +404,7 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
binbasename="${godot_basename}_mono_linux"
|
binbasename="${godot_basename}_mono_linux"
|
||||||
mkdir -p ${binbasename}_x86_64
|
mkdir -p ${binbasename}_x86_64
|
||||||
cp out/linux/x86_64/tools-mono/godot.linuxbsd.editor.x86_64.mono ${binbasename}_x86_64/${binbasename}.x86_64
|
cp out/linux/x86_64/tools-mono/godot.linuxbsd.editor.x86_64.mono ${binbasename}_x86_64/${binbasename}.x86_64
|
||||||
|
strip ${binbasename}_x86_64/${binbasename}.x86_64
|
||||||
cp -rp out/linux/x86_64/tools-mono/GodotSharp ${binbasename}_x86_64/
|
cp -rp out/linux/x86_64/tools-mono/GodotSharp ${binbasename}_x86_64/
|
||||||
zip -r -q -9 "${reldir_mono}/${binbasename}_x86_64.zip" ${binbasename}_x86_64
|
zip -r -q -9 "${reldir_mono}/${binbasename}_x86_64.zip" ${binbasename}_x86_64
|
||||||
rm -rf ${binbasename}_x86_64
|
rm -rf ${binbasename}_x86_64
|
||||||
@@ -426,40 +412,17 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
binbasename="${godot_basename}_mono_linux"
|
binbasename="${godot_basename}_mono_linux"
|
||||||
mkdir -p ${binbasename}_x86_32
|
mkdir -p ${binbasename}_x86_32
|
||||||
cp out/linux/x86_32/tools-mono/godot.linuxbsd.editor.x86_32.mono ${binbasename}_x86_32/${binbasename}.x86_32
|
cp out/linux/x86_32/tools-mono/godot.linuxbsd.editor.x86_32.mono ${binbasename}_x86_32/${binbasename}.x86_32
|
||||||
|
strip ${binbasename}_x86_32/${binbasename}.x86_32
|
||||||
cp -rp out/linux/x86_32/tools-mono/GodotSharp/ ${binbasename}_x86_32/
|
cp -rp out/linux/x86_32/tools-mono/GodotSharp/ ${binbasename}_x86_32/
|
||||||
zip -r -q -9 "${reldir_mono}/${binbasename}_x86_32.zip" ${binbasename}_x86_32
|
zip -r -q -9 "${reldir_mono}/${binbasename}_x86_32.zip" ${binbasename}_x86_32
|
||||||
rm -rf ${binbasename}_x86_32
|
rm -rf ${binbasename}_x86_32
|
||||||
|
|
||||||
binbasename="${godot_basename}_mono_linux"
|
|
||||||
mkdir -p ${binbasename}_arm64
|
|
||||||
cp out/linux/arm64/tools-mono/godot.linuxbsd.editor.arm64.mono ${binbasename}_arm64/${binbasename}.arm64
|
|
||||||
cp -rp out/linux/arm64/tools-mono/GodotSharp/ ${binbasename}_arm64/
|
|
||||||
zip -r -q -9 "${reldir_mono}/${binbasename}_arm64.zip" ${binbasename}_arm64
|
|
||||||
rm -rf ${binbasename}_arm64
|
|
||||||
|
|
||||||
binbasename="${godot_basename}_mono_linux"
|
|
||||||
mkdir -p ${binbasename}_arm32
|
|
||||||
cp out/linux/arm32/tools-mono/godot.linuxbsd.editor.arm32.mono ${binbasename}_arm32/${binbasename}.arm32
|
|
||||||
cp -rp out/linux/arm32/tools-mono/GodotSharp/ ${binbasename}_arm32/
|
|
||||||
zip -r -q -9 "${reldir_mono}/${binbasename}_arm32.zip" ${binbasename}_arm32
|
|
||||||
rm -rf ${binbasename}_arm32
|
|
||||||
|
|
||||||
# ICU data
|
|
||||||
if [ -f ${basedir}/git/thirdparty/icu4c/icudt_godot.dat ]; then
|
|
||||||
cp ${basedir}/git/thirdparty/icu4c/icudt_godot.dat ${templatesdir_mono}/icudt_godot.dat
|
|
||||||
else
|
|
||||||
echo "icudt_godot.dat" not found.
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Templates
|
# Templates
|
||||||
cp out/linux/x86_64/templates-mono/godot.linuxbsd.template_debug.x86_64.mono ${templatesdir_mono}/linux_debug.x86_64
|
cp out/linux/x86_64/templates-mono/godot.linuxbsd.template_debug.x86_64.mono ${templatesdir_mono}/linux_debug.x86_64
|
||||||
cp out/linux/x86_64/templates-mono/godot.linuxbsd.template_release.x86_64.mono ${templatesdir_mono}/linux_release.x86_64
|
cp out/linux/x86_64/templates-mono/godot.linuxbsd.template_release.x86_64.mono ${templatesdir_mono}/linux_release.x86_64
|
||||||
cp out/linux/x86_32/templates-mono/godot.linuxbsd.template_debug.x86_32.mono ${templatesdir_mono}/linux_debug.x86_32
|
cp out/linux/x86_32/templates-mono/godot.linuxbsd.template_debug.x86_32.mono ${templatesdir_mono}/linux_debug.x86_32
|
||||||
cp out/linux/x86_32/templates-mono/godot.linuxbsd.template_release.x86_32.mono ${templatesdir_mono}/linux_release.x86_32
|
cp out/linux/x86_32/templates-mono/godot.linuxbsd.template_release.x86_32.mono ${templatesdir_mono}/linux_release.x86_32
|
||||||
cp out/linux/arm64/templates-mono/godot.linuxbsd.template_debug.arm64.mono ${templatesdir_mono}/linux_debug.arm64
|
strip ${templatesdir_mono}/linux*
|
||||||
cp out/linux/arm64/templates-mono/godot.linuxbsd.template_release.arm64.mono ${templatesdir_mono}/linux_release.arm64
|
|
||||||
cp out/linux/arm32/templates-mono/godot.linuxbsd.template_debug.arm32.mono ${templatesdir_mono}/linux_debug.arm32
|
|
||||||
cp out/linux/arm32/templates-mono/godot.linuxbsd.template_release.arm32.mono ${templatesdir_mono}/linux_release.arm32
|
|
||||||
|
|
||||||
## Windows (Mono) ##
|
## Windows (Mono) ##
|
||||||
|
|
||||||
@@ -468,9 +431,11 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
wrpname="${godot_basename}_mono_win64_console"
|
wrpname="${godot_basename}_mono_win64_console"
|
||||||
mkdir -p ${binname}
|
mkdir -p ${binname}
|
||||||
cp out/windows/x86_64/tools-mono/godot.windows.editor.x86_64.mono.exe ${binname}/${binname}.exe
|
cp out/windows/x86_64/tools-mono/godot.windows.editor.x86_64.mono.exe ${binname}/${binname}.exe
|
||||||
|
strip ${binname}/${binname}.exe
|
||||||
sign_windows ${binname}/${binname}.exe
|
sign_windows ${binname}/${binname}.exe
|
||||||
cp -rp out/windows/x86_64/tools-mono/GodotSharp ${binname}/
|
cp -rp out/windows/x86_64/tools-mono/GodotSharp ${binname}/
|
||||||
cp out/windows/x86_64/tools-mono/godot.windows.editor.x86_64.mono.console.exe ${binname}/${wrpname}.exe
|
cp out/windows/x86_64/tools-mono/godot.windows.editor.x86_64.mono.console.exe ${binname}/${wrpname}.exe
|
||||||
|
strip ${binname}/${wrpname}.exe
|
||||||
sign_windows ${binname}/${wrpname}.exe
|
sign_windows ${binname}/${wrpname}.exe
|
||||||
zip -r -q -9 "${reldir_mono}/${binname}.zip" ${binname}
|
zip -r -q -9 "${reldir_mono}/${binname}.zip" ${binname}
|
||||||
rm -rf ${binname}
|
rm -rf ${binname}
|
||||||
@@ -479,20 +444,11 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
wrpname="${godot_basename}_mono_win32_console"
|
wrpname="${godot_basename}_mono_win32_console"
|
||||||
mkdir -p ${binname}
|
mkdir -p ${binname}
|
||||||
cp out/windows/x86_32/tools-mono/godot.windows.editor.x86_32.mono.exe ${binname}/${binname}.exe
|
cp out/windows/x86_32/tools-mono/godot.windows.editor.x86_32.mono.exe ${binname}/${binname}.exe
|
||||||
|
strip ${binname}/${binname}.exe
|
||||||
sign_windows ${binname}/${binname}.exe
|
sign_windows ${binname}/${binname}.exe
|
||||||
cp -rp out/windows/x86_32/tools-mono/GodotSharp ${binname}/
|
cp -rp out/windows/x86_32/tools-mono/GodotSharp ${binname}/
|
||||||
cp out/windows/x86_32/tools-mono/godot.windows.editor.x86_32.mono.console.exe ${binname}/${wrpname}.exe
|
cp out/windows/x86_32/tools-mono/godot.windows.editor.x86_32.mono.console.exe ${binname}/${wrpname}.exe
|
||||||
sign_windows ${binname}/${wrpname}.exe
|
strip ${binname}/${wrpname}.exe
|
||||||
zip -r -q -9 "${reldir_mono}/${binname}.zip" ${binname}
|
|
||||||
rm -rf ${binname}
|
|
||||||
|
|
||||||
binname="${godot_basename}_mono_windows_arm64"
|
|
||||||
wrpname="${godot_basename}_mono_windows_arm64_console"
|
|
||||||
mkdir -p ${binname}
|
|
||||||
cp out/windows/arm64/tools-mono/godot.windows.editor.arm64.llvm.mono.exe ${binname}/${binname}.exe
|
|
||||||
sign_windows ${binname}/${binname}.exe
|
|
||||||
cp -rp out/windows/arm64/tools-mono/GodotSharp ${binname}/
|
|
||||||
cp out/windows/arm64/tools-mono/godot.windows.editor.arm64.llvm.mono.console.exe ${binname}/${wrpname}.exe
|
|
||||||
sign_windows ${binname}/${wrpname}.exe
|
sign_windows ${binname}/${wrpname}.exe
|
||||||
zip -r -q -9 "${reldir_mono}/${binname}.zip" ${binname}
|
zip -r -q -9 "${reldir_mono}/${binname}.zip" ${binname}
|
||||||
rm -rf ${binname}
|
rm -rf ${binname}
|
||||||
@@ -502,14 +458,11 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
cp out/windows/x86_64/templates-mono/godot.windows.template_release.x86_64.mono.exe ${templatesdir_mono}/windows_release_x86_64.exe
|
cp out/windows/x86_64/templates-mono/godot.windows.template_release.x86_64.mono.exe ${templatesdir_mono}/windows_release_x86_64.exe
|
||||||
cp out/windows/x86_32/templates-mono/godot.windows.template_debug.x86_32.mono.exe ${templatesdir_mono}/windows_debug_x86_32.exe
|
cp out/windows/x86_32/templates-mono/godot.windows.template_debug.x86_32.mono.exe ${templatesdir_mono}/windows_debug_x86_32.exe
|
||||||
cp out/windows/x86_32/templates-mono/godot.windows.template_release.x86_32.mono.exe ${templatesdir_mono}/windows_release_x86_32.exe
|
cp out/windows/x86_32/templates-mono/godot.windows.template_release.x86_32.mono.exe ${templatesdir_mono}/windows_release_x86_32.exe
|
||||||
cp out/windows/arm64/templates-mono/godot.windows.template_debug.arm64.llvm.mono.exe ${templatesdir_mono}/windows_debug_arm64.exe
|
|
||||||
cp out/windows/arm64/templates-mono/godot.windows.template_release.arm64.llvm.mono.exe ${templatesdir_mono}/windows_release_arm64.exe
|
|
||||||
cp out/windows/x86_64/templates-mono/godot.windows.template_debug.x86_64.mono.console.exe ${templatesdir_mono}/windows_debug_x86_64_console.exe
|
cp out/windows/x86_64/templates-mono/godot.windows.template_debug.x86_64.mono.console.exe ${templatesdir_mono}/windows_debug_x86_64_console.exe
|
||||||
cp out/windows/x86_64/templates-mono/godot.windows.template_release.x86_64.mono.console.exe ${templatesdir_mono}/windows_release_x86_64_console.exe
|
cp out/windows/x86_64/templates-mono/godot.windows.template_release.x86_64.mono.console.exe ${templatesdir_mono}/windows_release_x86_64_console.exe
|
||||||
cp out/windows/x86_32/templates-mono/godot.windows.template_debug.x86_32.mono.console.exe ${templatesdir_mono}/windows_debug_x86_32_console.exe
|
cp out/windows/x86_32/templates-mono/godot.windows.template_debug.x86_32.mono.console.exe ${templatesdir_mono}/windows_debug_x86_32_console.exe
|
||||||
cp out/windows/x86_32/templates-mono/godot.windows.template_release.x86_32.mono.console.exe ${templatesdir_mono}/windows_release_x86_32_console.exe
|
cp out/windows/x86_32/templates-mono/godot.windows.template_release.x86_32.mono.console.exe ${templatesdir_mono}/windows_release_x86_32_console.exe
|
||||||
cp out/windows/arm64/templates-mono/godot.windows.template_debug.arm64.llvm.mono.console.exe ${templatesdir_mono}/windows_debug_arm64_console.exe
|
strip ${templatesdir_mono}/windows*.exe
|
||||||
cp out/windows/arm64/templates-mono/godot.windows.template_release.arm64.llvm.mono.console.exe ${templatesdir_mono}/windows_release_arm64_console.exe
|
|
||||||
|
|
||||||
## macOS (Mono) ##
|
## macOS (Mono) ##
|
||||||
|
|
||||||
@@ -536,6 +489,16 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
rm -rf macos_template.app
|
rm -rf macos_template.app
|
||||||
sign_macos_template ${templatesdir_mono} 1
|
sign_macos_template ${templatesdir_mono} 1
|
||||||
|
|
||||||
|
# No .NET support for those platforms yet.
|
||||||
|
|
||||||
|
if false; then
|
||||||
|
|
||||||
|
## Web (Mono) ##
|
||||||
|
|
||||||
|
# Templates
|
||||||
|
cp out/web/templates-mono/godot.web.template_debug.wasm32.mono.zip ${templatesdir_mono}/web_debug.zip
|
||||||
|
cp out/web/templates-mono/godot.web.template_release.wasm32.mono.zip ${templatesdir_mono}/web_release.zip
|
||||||
|
|
||||||
## Android (Mono) ##
|
## Android (Mono) ##
|
||||||
|
|
||||||
# Lib for direct download
|
# Lib for direct download
|
||||||
@@ -553,34 +516,13 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
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.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
|
cp out/ios/templates-mono/libgodot.ios.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64/libgodot.a
|
||||||
cp out/ios/templates-mono/libgodot.ios.debug.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64/libgodot.a
|
cp out/ios/templates-mono/libgodot.ios.debug.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64/libgodot.a
|
||||||
cp -r deps/moltenvk/MoltenVK/MoltenVK.xcframework ios_xcode/
|
cp -r deps/vulkansdk-macos/MoltenVK/MoltenVK.xcframework ios_xcode/
|
||||||
rm -rf ios_xcode/MoltenVK.xcframework/{macos,tvos}*
|
rm -rf ios_xcode/MoltenVK.xcframework/{macos,tvos}*
|
||||||
cd ios_xcode
|
cd ios_xcode
|
||||||
zip -q -9 -r "${templatesdir_mono}/ios.zip" *
|
zip -q -9 -r "${templatesdir_mono}/ios.zip" *
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf ios_xcode
|
rm -rf ios_xcode
|
||||||
|
|
||||||
## 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
|
|
||||||
|
|
||||||
# No .NET support for those platforms yet.
|
|
||||||
|
|
||||||
if false; then
|
|
||||||
|
|
||||||
## Web (Mono) ##
|
|
||||||
|
|
||||||
# Templates
|
|
||||||
cp out/web/templates-mono/godot.web.template_debug.wasm32.mono.zip ${templatesdir_mono}/web_debug.zip
|
|
||||||
cp out/web/templates-mono/godot.web.template_release.wasm32.mono.zip ${templatesdir_mono}/web_release.zip
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## Templates TPZ (Mono) ##
|
## Templates TPZ (Mono) ##
|
||||||
@@ -600,4 +542,13 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# NuGet packages
|
||||||
|
|
||||||
|
if [ "${publish_nuget}" == "1" ]; then
|
||||||
|
|
||||||
|
echo "Publishing NuGet packages..."
|
||||||
|
publish_nuget_packages out/linux/x86_64/tools-mono/GodotSharp/Tools/nupkgs/*.nupkg
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
echo "All editor binaries and templates prepared successfully for release"
|
echo "All editor binaries and templates prepared successfully for release"
|
||||||
|
|||||||
3
build-uwp/build.bat
Executable file
3
build-uwp/build.bat
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
call z:\root\build\env-%1.bat
|
||||||
|
|
||||||
|
%SCONS% platform=uwp %OPTIONS% tools=no target=%2 LINK="\"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX64\%1\link.exe\""
|
||||||
43
build-uwp/build.sh
Executable file
43
build-uwp/build.sh
Executable file
@@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Config
|
||||||
|
|
||||||
|
export SCONS="call scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
||||||
|
export OPTIONS="production=yes"
|
||||||
|
export BUILD_ARCHES="x86 x64 arm"
|
||||||
|
export ANGLE_SRC_PATH='c:\angle'
|
||||||
|
|
||||||
|
rm -rf godot
|
||||||
|
mkdir godot
|
||||||
|
cd godot
|
||||||
|
tar xf /root/godot.tar.gz --strip-components=1
|
||||||
|
|
||||||
|
# Classical
|
||||||
|
|
||||||
|
if [ "${CLASSICAL}" == "1" ]; then
|
||||||
|
echo "Starting classical build for UWP..."
|
||||||
|
|
||||||
|
for arch in ${BUILD_ARCHES}; do
|
||||||
|
for release in release release_debug; do
|
||||||
|
wine cmd /c /root/build/build.bat $arch $release
|
||||||
|
|
||||||
|
sync
|
||||||
|
wineserver -kw
|
||||||
|
|
||||||
|
mkdir -p /root/out/$arch
|
||||||
|
mv bin/* /root/out/$arch
|
||||||
|
done
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Mono
|
||||||
|
|
||||||
|
if [ "${MONO}" == "1" ]; then
|
||||||
|
echo "No Mono support for UWP yet."
|
||||||
|
#cp /root/mono-glue/*.cpp modules/mono/glue/
|
||||||
|
#cp -r /root/mono-glue/Managed/Generated modules/mono/glue/Managed/
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "UWP build successful"
|
||||||
36
build-uwp/env-arm.bat
Executable file
36
build-uwp/env-arm.bat
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
set ALLUSERSPROFILE=C:\ProgramData
|
||||||
|
set CommandPromptType=Native
|
||||||
|
set CommonProgramFiles=C:\Program Files\Common Files
|
||||||
|
set CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
|
||||||
|
set CommonProgramW6432=C:\Program Files\Common Files
|
||||||
|
set DevEnvDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\
|
||||||
|
set ExtensionSdkDir=C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs
|
||||||
|
set Framework40Version=v4.0
|
||||||
|
set FrameworkDir=C:\Windows\Microsoft.NET\Framework64\
|
||||||
|
set FrameworkDir64=C:\Windows\Microsoft.NET\Framework64\
|
||||||
|
set FrameworkVersion=v4.0.30319
|
||||||
|
set FrameworkVersion64=v4.0.30319
|
||||||
|
set VCIDEInstallDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\
|
||||||
|
set VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\
|
||||||
|
set VCToolsInstallDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\
|
||||||
|
set VCToolsRedistDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Redist\MSVC\14.16.27012\
|
||||||
|
set VCToolsVersion=14.16.27023
|
||||||
|
set VisualStudioVersion=15.0
|
||||||
|
set VS150COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\
|
||||||
|
set VSCMD_ARG_app_plat=UWP
|
||||||
|
set Platform=arm
|
||||||
|
set VSCMD_ARG_HOST_ARCH=x86
|
||||||
|
set VSCMD_ARG_TGT_ARCH=arm
|
||||||
|
set VSCMD_ARG_winsdk=10.0.16299.0
|
||||||
|
set VSCMD_VER=15.0
|
||||||
|
set VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\
|
||||||
|
set Path=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\arm;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCPackages;C:\Program Files (x86)\Microsoft Visual Studio\2017\Build Tools\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\bin\Roslyn;C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\arm;C:\Program Files (x86)\Windows Kits\10\bin\arm;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\\MSBuild\15.0\bin;C:\Windows\Microsoft.NET\Framework\ v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\;C:\Program Files\Python37\Scripts\;C:\Program Files\Python37\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;C:\Program Files\OpenSSH-Win64;C:\Program Files\Git\cmd;C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;C:\Users\user\AppData\Local\Microsoft\WindowsApps;
|
||||||
|
set INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include;C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\ucrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\shared;C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\winrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\cppwinrt
|
||||||
|
set LIB=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\lib\arm\store\;C:\Program Files (x86)\Windows Kits\10\lib\10.0.16299.0\ucrt\arm;C:\Program Files (x86)\Windows Kits\10\lib\10.0.16299.0\um\arm;
|
||||||
|
set LIBPATH=C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs\14.0\References\CommonConfiguration\neutral;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\lib\arm\store\references;C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.16299.0;C:\Program Files (x86)\Windows Kits\10\References\10.0.16299.0;C:\Windows\Microsoft.NET\Framework\v4.0.30319;
|
||||||
|
set WindowsLibPath=C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.16299.0;C:\Program Files (x86)\Windows Kits\10\References\10.0.16299.0
|
||||||
|
set WindowsSdkBinPath=C:\Program Files (x86)\Windows Kits\10\bin\
|
||||||
|
set WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\
|
||||||
|
set WindowsSDKLibVersion=10.0.16299.0\
|
||||||
|
set WindowsSdkVerBinPath=C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\
|
||||||
|
set WindowsSDKVersion=10.0.16299.0\
|
||||||
35
build-uwp/env-x64.bat
Executable file
35
build-uwp/env-x64.bat
Executable file
@@ -0,0 +1,35 @@
|
|||||||
|
set ALLUSERSPROFILE=C:\ProgramData
|
||||||
|
set CommandPromptType=Native
|
||||||
|
set CommonProgramFiles=C:\Program Files\Common Files
|
||||||
|
set CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
|
||||||
|
set CommonProgramW6432=C:\Program Files\Common Files
|
||||||
|
set DevEnvDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\
|
||||||
|
set ExtensionSdkDir=C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs
|
||||||
|
set Framework40Version=v4.0
|
||||||
|
set FrameworkDir=C:\Windows\Microsoft.NET\Framework64\
|
||||||
|
set FrameworkDir64=C:\Windows\Microsoft.NET\Framework64\
|
||||||
|
set FrameworkVersion=v4.0.30319
|
||||||
|
set FrameworkVersion64=v4.0.30319
|
||||||
|
set VCIDEInstallDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\
|
||||||
|
set VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\
|
||||||
|
set VCToolsInstallDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\
|
||||||
|
set VCToolsRedistDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Redist\MSVC\14.16.27012\
|
||||||
|
set VCToolsVersion=14.16.27023
|
||||||
|
set VisualStudioVersion=15.0
|
||||||
|
set VS150COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\
|
||||||
|
set VSCMD_ARG_app_plat=UWP
|
||||||
|
set VSCMD_ARG_HOST_ARCH=x86
|
||||||
|
set VSCMD_ARG_TGT_ARCH=x64
|
||||||
|
set VSCMD_ARG_winsdk=10.0.16299.0
|
||||||
|
set VSCMD_VER=15.0
|
||||||
|
set VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\
|
||||||
|
set Path=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCPackages;C:\Program Files (x86)\Microsoft Visual Studio\2017\Build Tools\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\bin\Roslyn;C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64;C:\Program Files (x86)\Windows Kits\10\bin\x64;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\\MSBuild\15.0\bin;C:\Windows\Microsoft.NET\Framework\ v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\;C:\Program Files\Python37\Scripts\;C:\Program Files\Python37\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;C:\Program Files\OpenSSH-Win64;C:\Program Files\Git\cmd;C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;C:\Users\user\AppData\Local\Microsoft\WindowsApps;
|
||||||
|
set INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include;C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\ucrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\shared;C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\winrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\cppwinrt
|
||||||
|
set LIB=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\lib\x64\store\;C:\Program Files (x86)\Windows Kits\10\lib\10.0.16299.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.16299.0\um\x64;
|
||||||
|
set LIBPATH=C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs\14.0\References\CommonConfiguration\neutral;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\lib\x64\store\references;C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.16299.0;C:\Program Files (x86)\Windows Kits\10\References\10.0.16299.0;C:\Windows\Microsoft.NET\Framework\v4.0.30319;
|
||||||
|
set WindowsLibPath=C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.16299.0;C:\Program Files (x86)\Windows Kits\10\References\10.0.16299.0
|
||||||
|
set WindowsSdkBinPath=C:\Program Files (x86)\Windows Kits\10\bin\
|
||||||
|
set WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\
|
||||||
|
set WindowsSDKLibVersion=10.0.16299.0\
|
||||||
|
set WindowsSdkVerBinPath=C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\
|
||||||
|
set WindowsSDKVersion=10.0.16299.0\
|
||||||
36
build-uwp/env-x86.bat
Executable file
36
build-uwp/env-x86.bat
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
set ALLUSERSPROFILE=C:\ProgramData
|
||||||
|
set CommandPromptType=Native
|
||||||
|
set CommonProgramFiles=C:\Program Files\Common Files
|
||||||
|
set CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
|
||||||
|
set CommonProgramW6432=C:\Program Files\Common Files
|
||||||
|
set DevEnvDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\
|
||||||
|
set ExtensionSdkDir=C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs
|
||||||
|
set Framework40Version=v4.0
|
||||||
|
set FrameworkDir=C:\Windows\Microsoft.NET\Framework64\
|
||||||
|
set FrameworkDir64=C:\Windows\Microsoft.NET\Framework64\
|
||||||
|
set FrameworkVersion=v4.0.30319
|
||||||
|
set FrameworkVersion64=v4.0.30319
|
||||||
|
set VCIDEInstallDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\
|
||||||
|
set VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\
|
||||||
|
set VCToolsInstallDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\
|
||||||
|
set VCToolsRedistDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Redist\MSVC\14.16.27012\
|
||||||
|
set VCToolsVersion=14.16.27023
|
||||||
|
set VisualStudioVersion=15.0
|
||||||
|
set VS150COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\
|
||||||
|
set VSCMD_ARG_app_plat=UWP
|
||||||
|
set VSCMD_ARG_HOST_ARCH=x86
|
||||||
|
set VSCMD_ARG_TGT_ARCH=x86
|
||||||
|
set VSCMD_ARG_winsdk=10.0.16299.0
|
||||||
|
set VSCMD_VER=15.0
|
||||||
|
set VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\
|
||||||
|
set Path=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCPackages;C:\Program Files (x86)\Microsoft Visual Studio\2017\Build Tools\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\bin\Roslyn;C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x86;C:\Program Files (x86)\Windows Kits\10\bin\x86;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\\MSBuild\15.0\bin;C:\Windows\Microsoft.NET\Framework\ v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\;C:\Program Files\Python37\Scripts\;C:\Program Files\Python37\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;C:\Program Files\OpenSSH-Win64;C:\Program Files\Git\cmd;C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;C:\Users\user\AppData\Local\Microsoft\WindowsApps;
|
||||||
|
set INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include;C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\ucrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\shared;C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\winrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\cppwinrt
|
||||||
|
set LIB=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\lib\x86\store\;C:\Program Files (x86)\Windows Kits\10\lib\10.0.16299.0\ucrt\x86;C:\Program Files (x86)\Windows Kits\10\lib\10.0.16299.0\um\x86;
|
||||||
|
set LIBPATH=C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs\14.0\References\CommonConfiguration\neutral;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\lib\x86\store\references;C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.16299.0;C:\Program Files (x86)\Windows Kits\10\References\10.0.16299.0;C:\Windows\Microsoft.NET\Framework\v4.0.30319;
|
||||||
|
set WindowsLibPath=C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.16299.0;C:\Program Files (x86)\Windows Kits\10\References\10.0.16299.0
|
||||||
|
set WindowsSdkBinPath=C:\Program Files (x86)\Windows Kits\10\bin\
|
||||||
|
set WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\
|
||||||
|
set WindowsSDKLibVersion=10.0.16299.0\
|
||||||
|
set WindowsSdkVerBinPath=C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\
|
||||||
|
set WindowsSDKVersion=10.0.16299.0\
|
||||||
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Config
|
|
||||||
|
|
||||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no redirect_build_objects=no"
|
|
||||||
# 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_MONO="module_mono_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 APPLE_TARGET_ARM64="APPLE_TOOLCHAIN_PATH=/root/ioscross/arm64 apple_target_triple=arm-apple-darwin11-"
|
|
||||||
|
|
||||||
rm -rf godot
|
|
||||||
mkdir godot
|
|
||||||
cd godot
|
|
||||||
tar xf /root/godot.tar.gz --strip-components=1
|
|
||||||
|
|
||||||
# Classical
|
|
||||||
|
|
||||||
if [ "${CLASSICAL}" == "1" ]; then
|
|
||||||
echo "Starting classical build for visionOS..."
|
|
||||||
|
|
||||||
# arm64 device
|
|
||||||
$SCONS platform=visionos $OPTIONS arch=arm64 target=template_debug $VISIONOS_DEVICE $APPLE_TARGET_ARM64
|
|
||||||
$SCONS platform=visionos $OPTIONS arch=arm64 target=template_release $VISIONOS_DEVICE $APPLE_TARGET_ARM64
|
|
||||||
|
|
||||||
# arm64 simulator (disabled for now, see build-ios)
|
|
||||||
#$SCONS platform=visionos $OPTIONS arch=arm64 target=template_debug $VISIONOS_SIMULATOR $APPLE_TARGET_ARM64
|
|
||||||
#$SCONS platform=visionos $OPTIONS arch=arm64 target=template_release $VISIONOS_SIMULATOR $APPLE_TARGET_ARM64
|
|
||||||
|
|
||||||
mkdir -p /root/out/templates
|
|
||||||
cp bin/libgodot.visionos.template_release.arm64.a /root/out/templates/libgodot.visionos.a
|
|
||||||
cp bin/libgodot.visionos.template_debug.arm64.a /root/out/templates/libgodot.visionos.debug.a
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Mono
|
|
||||||
|
|
||||||
if [ "${MONO}" == "1" ]; then
|
|
||||||
echo "Starting Mono build for visionOS..."
|
|
||||||
|
|
||||||
cp -r /root/mono-glue/GodotSharp/GodotSharp/Generated modules/mono/glue/GodotSharp/GodotSharp/
|
|
||||||
|
|
||||||
# arm64 device
|
|
||||||
$SCONS platform=visionos $OPTIONS $OPTIONS_MONO arch=arm64 target=template_debug $VISIONOS_DEVICE $APPLE_TARGET_ARM64
|
|
||||||
$SCONS platform=visionos $OPTIONS $OPTIONS_MONO arch=arm64 target=template_release $VISIONOS_DEVICE $APPLE_TARGET_ARM64
|
|
||||||
|
|
||||||
# arm64 simulator (disabled for now, see build-ios)
|
|
||||||
#$SCONS platform=visionos $OPTIONS $OPTIONS_MONO arch=arm64 target=template_debug $VISIONOS_SIMULATOR $APPLE_TARGET_ARM64
|
|
||||||
#$SCONS platform=visionos $OPTIONS $OPTIONS_MONO arch=arm64 target=template_release $VISIONOS_SIMULATOR $APPLE_TARGET_ARM64
|
|
||||||
|
|
||||||
mkdir -p /root/out/templates-mono
|
|
||||||
cp bin/libgodot.visionos.template_release.arm64.a /root/out/templates-mono/libgodot.visionos.a
|
|
||||||
cp bin/libgodot.visionos.template_debug.arm64.a /root/out/templates-mono/libgodot.visionos.debug.a
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "visionOS build successful"
|
|
||||||
@@ -8,19 +8,14 @@ set -e
|
|||||||
# we run all builds in parallel each from their own folder.
|
# we run all builds in parallel each from their own folder.
|
||||||
export NUM_JOBS=5
|
export NUM_JOBS=5
|
||||||
declare -a JOBS=(
|
declare -a JOBS=(
|
||||||
|
"target=editor use_closure_compiler=yes"
|
||||||
"target=template_debug"
|
"target=template_debug"
|
||||||
"target=template_release"
|
"target=template_release"
|
||||||
"target=template_debug dlink_enabled=yes"
|
"target=template_debug dlink_enabled=yes"
|
||||||
"target=template_release dlink_enabled=yes"
|
"target=template_release dlink_enabled=yes"
|
||||||
)
|
)
|
||||||
declare -a JOBS_NOTHREADS=(
|
|
||||||
"target=template_debug threads=no"
|
|
||||||
"target=template_release threads=no"
|
|
||||||
"target=template_debug dlink_enabled=yes threads=no"
|
|
||||||
"target=template_release dlink_enabled=yes threads=no"
|
|
||||||
)
|
|
||||||
|
|
||||||
export SCONS="scons -j$(expr ${NUM_CORES} / ${NUM_JOBS}) verbose=yes warnings=no progress=no redirect_build_objects=no"
|
export SCONS="scons -j$(expr ${NUM_CORES} / ${NUM_JOBS}) verbose=yes warnings=no progress=no"
|
||||||
export OPTIONS="production=yes"
|
export OPTIONS="production=yes"
|
||||||
export OPTIONS_MONO="module_mono_enabled=yes -j${NUM_CORES}"
|
export OPTIONS_MONO="module_mono_enabled=yes -j${NUM_CORES}"
|
||||||
export TERM=xterm
|
export TERM=xterm
|
||||||
@@ -34,10 +29,12 @@ tar xf /root/godot.tar.gz --strip-components=1
|
|||||||
|
|
||||||
# Classical
|
# Classical
|
||||||
|
|
||||||
|
dnf -y install gettext
|
||||||
|
|
||||||
if [ "${CLASSICAL}" == "1" ]; then
|
if [ "${CLASSICAL}" == "1" ]; then
|
||||||
echo "Starting classical build for Web..."
|
echo "Starting classical build for Web..."
|
||||||
|
|
||||||
for i in {0..3}; do
|
for i in {0..4}; do
|
||||||
cp -r /root/godot /root/godot$i
|
cp -r /root/godot /root/godot$i
|
||||||
cd /root/godot$i
|
cd /root/godot$i
|
||||||
echo "$SCONS platform=web ${OPTIONS} ${JOBS[$i]}"
|
echo "$SCONS platform=web ${OPTIONS} ${JOBS[$i]}"
|
||||||
@@ -45,35 +42,16 @@ if [ "${CLASSICAL}" == "1" ]; then
|
|||||||
pids[$i]=$!
|
pids[$i]=$!
|
||||||
done
|
done
|
||||||
|
|
||||||
cd /root/godot
|
|
||||||
echo "$SCONS platform=web ${OPTIONS} target=editor use_closure_compiler=yes"
|
|
||||||
$SCONS platform=web ${OPTIONS} target=editor use_closure_compiler=yes &
|
|
||||||
pid_editor=$!
|
|
||||||
|
|
||||||
for pid in ${pids[*]}; do
|
for pid in ${pids[*]}; do
|
||||||
wait $pid
|
wait $pid
|
||||||
done
|
done
|
||||||
wait $pid_editor
|
|
||||||
|
|
||||||
for i in {0..3}; do
|
|
||||||
cp -r /root/godot /root/godot-nothreads$i
|
|
||||||
cd /root/godot-nothreads$i
|
|
||||||
echo "$SCONS platform=web ${OPTIONS} ${JOBS_NOTHREADS[$i]}"
|
|
||||||
$SCONS platform=web ${OPTIONS} ${JOBS_NOTHREADS[$i]} &
|
|
||||||
pids_nothreads[$i]=$!
|
|
||||||
done
|
|
||||||
|
|
||||||
for pid in ${pids_nothreads[*]}; do
|
|
||||||
wait $pid
|
|
||||||
done
|
|
||||||
|
|
||||||
mkdir -p /root/out/tools
|
mkdir -p /root/out/tools
|
||||||
cp -rvp /root/godot/bin/*.editor*.zip /root/out/tools
|
cp -rvp /root/godot0/bin/*.editor*.zip /root/out/tools
|
||||||
|
|
||||||
mkdir -p /root/out/templates
|
mkdir -p /root/out/templates
|
||||||
for i in {0..3}; do
|
for i in {1..4}; do
|
||||||
cp -rvp /root/godot$i/bin/*.zip /root/out/templates
|
cp -rvp /root/godot$i/bin/*.zip /root/out/templates
|
||||||
cp -rvp /root/godot-nothreads$i/bin/*.zip /root/out/templates
|
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,9 @@ set -e
|
|||||||
|
|
||||||
# Config
|
# Config
|
||||||
|
|
||||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no redirect_build_objects=no"
|
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=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="production=yes"
|
||||||
export OPTIONS_MONO="module_mono_enabled=yes"
|
export OPTIONS_MONO="module_mono_enabled=yes"
|
||||||
export OPTIONS_LLVM="use_llvm=yes mingw_prefix=/root/llvm-mingw"
|
|
||||||
export TERM=xterm
|
export TERM=xterm
|
||||||
|
|
||||||
rm -rf godot
|
rm -rf godot
|
||||||
@@ -17,6 +16,8 @@ tar xf /root/godot.tar.gz --strip-components=1
|
|||||||
|
|
||||||
# Classical
|
# Classical
|
||||||
|
|
||||||
|
dnf -y install gettext
|
||||||
|
|
||||||
if [ "${CLASSICAL}" == "1" ]; then
|
if [ "${CLASSICAL}" == "1" ]; then
|
||||||
echo "Starting classical build for Windows..."
|
echo "Starting classical build for Windows..."
|
||||||
|
|
||||||
@@ -41,28 +42,6 @@ if [ "${CLASSICAL}" == "1" ]; then
|
|||||||
mkdir -p /root/out/x86_32/templates
|
mkdir -p /root/out/x86_32/templates
|
||||||
cp -rvp bin/* /root/out/x86_32/templates
|
cp -rvp bin/* /root/out/x86_32/templates
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
|
|
||||||
$SCONS platform=windows arch=arm64 $OPTIONS $OPTIONS_LLVM target=editor
|
|
||||||
mkdir -p /root/out/arm64/tools
|
|
||||||
cp -rvp bin/* /root/out/arm64/tools
|
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
$SCONS platform=windows arch=arm64 $OPTIONS $OPTIONS_LLVM target=template_debug
|
|
||||||
$SCONS platform=windows arch=arm64 $OPTIONS $OPTIONS_LLVM target=template_release
|
|
||||||
mkdir -p /root/out/arm64/templates
|
|
||||||
cp -rvp bin/* /root/out/arm64/templates
|
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
if [ "${STEAM}" == "1" ]; then
|
|
||||||
build_name=${BUILD_NAME}
|
|
||||||
export BUILD_NAME="steam"
|
|
||||||
$SCONS platform=windows arch=x86_64 $OPTIONS target=editor steamapi=yes
|
|
||||||
$SCONS platform=windows arch=x86_32 $OPTIONS target=editor steamapi=yes
|
|
||||||
mkdir -p /root/out/steam
|
|
||||||
cp -rvp bin/* /root/out/steam
|
|
||||||
rm -rf bin
|
|
||||||
export BUILD_NAME=${build_name}
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Mono
|
# Mono
|
||||||
@@ -96,18 +75,6 @@ if [ "${MONO}" == "1" ]; then
|
|||||||
mkdir -p /root/out/x86_32/templates-mono
|
mkdir -p /root/out/x86_32/templates-mono
|
||||||
cp -rvp bin/* /root/out/x86_32/templates-mono
|
cp -rvp bin/* /root/out/x86_32/templates-mono
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
|
|
||||||
$SCONS platform=windows arch=arm64 $OPTIONS $OPTIONS_MONO $OPTIONS_LLVM target=editor
|
|
||||||
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=windows
|
|
||||||
mkdir -p /root/out/arm64/tools-mono
|
|
||||||
cp -rvp bin/* /root/out/arm64/tools-mono
|
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
$SCONS platform=windows arch=arm64 $OPTIONS $OPTIONS_MONO $OPTIONS_LLVM target=template_debug
|
|
||||||
$SCONS platform=windows arch=arm64 $OPTIONS $OPTIONS_MONO $OPTIONS_LLVM target=template_release
|
|
||||||
mkdir -p /root/out/arm64/templates-mono
|
|
||||||
cp -rvp bin/* /root/out/arm64/templates-mono
|
|
||||||
rm -rf bin
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Windows build successful"
|
echo "Windows build successful"
|
||||||
|
|||||||
113
build.sh
113
build.sh
@@ -4,14 +4,6 @@ set -e
|
|||||||
|
|
||||||
OPTIND=1
|
OPTIND=1
|
||||||
|
|
||||||
export basedir="$(pwd)"
|
|
||||||
mkdir -p ${basedir}/out
|
|
||||||
mkdir -p ${basedir}/out/logs
|
|
||||||
mkdir -p ${basedir}/mono-glue
|
|
||||||
|
|
||||||
# Log output to a file automatically.
|
|
||||||
exec > >(tee -a "out/logs/build") 2>&1
|
|
||||||
|
|
||||||
# Config
|
# Config
|
||||||
|
|
||||||
# For default registry and number of cores.
|
# For default registry and number of cores.
|
||||||
@@ -36,7 +28,6 @@ godot_version=""
|
|||||||
git_treeish="master"
|
git_treeish="master"
|
||||||
build_classical=1
|
build_classical=1
|
||||||
build_mono=1
|
build_mono=1
|
||||||
build_steam=0
|
|
||||||
force_download=0
|
force_download=0
|
||||||
skip_download=1
|
skip_download=1
|
||||||
skip_git_checkout=0
|
skip_git_checkout=0
|
||||||
@@ -94,6 +85,10 @@ done
|
|||||||
|
|
||||||
export podman=${PODMAN}
|
export podman=${PODMAN}
|
||||||
|
|
||||||
|
if [ $UID != 0 ]; then
|
||||||
|
echo "WARNING: Running as non-root may cause problems for the uwp build"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "${godot_version}" ]; then
|
if [ -z "${godot_version}" ]; then
|
||||||
echo "-v <version> is mandatory!"
|
echo "-v <version> is mandatory!"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -109,10 +104,6 @@ case "$choice" in
|
|||||||
esac
|
esac
|
||||||
export GODOT_VERSION_STATUS="${status}"
|
export GODOT_VERSION_STATUS="${status}"
|
||||||
|
|
||||||
if [ "${status}" == "stable" ]; then
|
|
||||||
build_steam=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -z "${username}" ] && [ ! -z "${password}" ]; then
|
if [ ! -z "${username}" ] && [ ! -z "${password}" ]; then
|
||||||
if ${podman} login ${registry} -u "${username}" -p "${password}"; then
|
if ${podman} login ${registry} -u "${username}" -p "${password}"; then
|
||||||
export logged_in=true
|
export logged_in=true
|
||||||
@@ -133,7 +124,7 @@ if [ $skip_download == 0 ]; then
|
|||||||
if [ ! -z "${logged_in}" ]; then
|
if [ ! -z "${logged_in}" ]; then
|
||||||
echo "Fetching private images"
|
echo "Fetching private images"
|
||||||
|
|
||||||
for image in macosx android appleembedded; do
|
for image in macosx android ios uwp; do
|
||||||
if [ ${force_download} == 1 ] || ! ${podman} image exists godot-private/$image; then
|
if [ ${force_download} == 1 ] || ! ${podman} image exists godot-private/$image; then
|
||||||
if ! ${podman} pull ${registry}/godot-private/${image}; then
|
if ! ${podman} pull ${registry}/godot-private/${image}; then
|
||||||
echo "ERROR: image $image does not exist and can't be downloaded"
|
echo "ERROR: image $image does not exist and can't be downloaded"
|
||||||
@@ -144,68 +135,9 @@ if [ $skip_download == 0 ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# macOS needs MoltenVK
|
# macOS and iOS need the Vulkan SDK
|
||||||
if [ ! -d "deps/moltenvk" ]; then
|
if [ ! -d "deps/vulkansdk-macos" ]; then
|
||||||
echo "Missing MoltenVK for macOS, downloading it."
|
echo "Missing Vulkan SDK for macOS, we're going to run into issues!"
|
||||||
mkdir -p deps/moltenvk
|
|
||||||
pushd deps/moltenvk
|
|
||||||
curl -L -o moltenvk.tar https://github.com/godotengine/moltenvk-osxcross/releases/download/vulkan-sdk-1.3.283.0-2/MoltenVK-all.tar
|
|
||||||
tar xf moltenvk.tar && rm -f moltenvk.tar
|
|
||||||
mv MoltenVK/MoltenVK/include/ MoltenVK/
|
|
||||||
mv MoltenVK/MoltenVK/static/MoltenVK.xcframework/ MoltenVK/
|
|
||||||
popd
|
|
||||||
fi
|
|
||||||
|
|
||||||
# accesskit-c for Windows, macOS and Linux
|
|
||||||
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
|
|
||||||
unzip -o accesskit.zip && rm -f accesskit.zip
|
|
||||||
mv accesskit-c-* accesskit-c
|
|
||||||
popd
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Windows and macOS need ANGLE
|
|
||||||
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
|
|
||||||
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 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
|
|
||||||
unzip -o windows_x86_64.zip && rm -f windows_x86_64.zip
|
|
||||||
unzip -o windows_x86_32.zip && rm -f windows_x86_32.zip
|
|
||||||
unzip -o macos_arm64.zip && rm -f macos_arm64.zip
|
|
||||||
unzip -o macos_x86_64.zip && rm -f macos_x86_64.zip
|
|
||||||
popd
|
|
||||||
fi
|
|
||||||
|
|
||||||
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
|
|
||||||
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
|
|
||||||
popd
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d "deps/swappy" ]; then
|
|
||||||
echo "Missing Swappy libraries, downloading them."
|
|
||||||
mkdir -p deps/swappy
|
|
||||||
pushd deps/swappy
|
|
||||||
curl -L -O https://github.com/godotengine/godot-swappy/releases/download/from-source-2025-01-31/godot-swappy.7z
|
|
||||||
7z x godot-swappy.7z && rm godot-swappy.7z
|
|
||||||
popd
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Keystore for Android editor signing
|
# Keystore for Android editor signing
|
||||||
@@ -247,39 +179,38 @@ EOF
|
|||||||
popd
|
popd
|
||||||
fi
|
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 basedir="$(pwd)"
|
||||||
|
mkdir -p ${basedir}/out
|
||||||
|
mkdir -p ${basedir}/out/logs
|
||||||
|
mkdir -p ${basedir}/mono-glue
|
||||||
|
|
||||||
|
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=$IMAGE_VERSION
|
export img_version=$IMAGE_VERSION
|
||||||
|
|
||||||
mkdir -p ${basedir}/mono-glue
|
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
|
${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/windows
|
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
|
${podman_run} -v ${basedir}/build-windows:/root/build -v ${basedir}/out/windows:/root/out localhost/godot-windows:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/windows
|
||||||
|
|
||||||
mkdir -p ${basedir}/out/linux
|
mkdir -p ${basedir}/out/linux
|
||||||
${podman_run} -v ${basedir}/build-linux:/root/build -v ${basedir}/out/linux:/root/out -v ${basedir}/deps/accesskit:/root/accesskit localhost/godot-linux:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/linux
|
${podman_run} -v ${basedir}/build-linux:/root/build -v ${basedir}/out/linux:/root/out localhost/godot-linux:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/linux
|
||||||
|
|
||||||
mkdir -p ${basedir}/out/web
|
mkdir -p ${basedir}/out/web
|
||||||
${podman_run} -v ${basedir}/build-web:/root/build -v ${basedir}/out/web:/root/out localhost/godot-web:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/web
|
${podman_run} -v ${basedir}/build-web:/root/build -v ${basedir}/out/web:/root/out localhost/godot-web:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/web
|
||||||
|
|
||||||
mkdir -p ${basedir}/out/macos
|
mkdir -p ${basedir}/out/macos
|
||||||
${podman_run} -v ${basedir}/build-macos:/root/build -v ${basedir}/out/macos:/root/out -v ${basedir}/deps/accesskit:/root/accesskit -v ${basedir}/deps/moltenvk:/root/moltenvk -v ${basedir}/deps/angle:/root/angle localhost/godot-osx:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/macos
|
${podman_run} -v ${basedir}/build-macos:/root/build -v ${basedir}/out/macos:/root/out -v ${basedir}/deps/vulkansdk-macos:/root/vulkansdk localhost/godot-osx:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/macos
|
||||||
|
|
||||||
mkdir -p ${basedir}/out/android
|
mkdir -p ${basedir}/out/android
|
||||||
${podman_run} -v ${basedir}/build-android:/root/build -v ${basedir}/out/android:/root/out -v ${basedir}/deps/swappy:/root/swappy -v ${basedir}/deps/keystore:/root/keystore localhost/godot-android:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/android
|
${podman_run} -v ${basedir}/build-android:/root/build -v ${basedir}/out/android:/root/out -v ${basedir}/deps/keystore:/root/keystore localhost/godot-android:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/android
|
||||||
|
|
||||||
mkdir -p ${basedir}/out/ios
|
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
|
${podman_run} -v ${basedir}/build-ios:/root/build -v ${basedir}/out/ios:/root/out localhost/godot-ios:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/ios
|
||||||
|
|
||||||
mkdir -p ${basedir}/out/visionos
|
#mkdir -p ${basedir}/out/uwp
|
||||||
${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
|
#${podman_run} --ulimit nofile=32768:32768 -v ${basedir}/build-uwp:/root/build -v ${basedir}/out/uwp:/root/out ${registry}/godot-private/uwp:latest bash build/build.sh 2>&1 | tee ${basedir}/out/logs/uwp
|
||||||
|
|
||||||
uid=$(id -un)
|
|
||||||
gid=$(id -gn)
|
|
||||||
if [ ! -z "$SUDO_UID" ]; then
|
if [ ! -z "$SUDO_UID" ]; then
|
||||||
uid="${SUDO_UID}"
|
chown -R "${SUDO_UID}":"${SUDO_GID}" ${basedir}/git ${basedir}/out ${basedir}/mono-glue ${basedir}/godot*.tar.gz
|
||||||
gid="${SUDO_GID}"
|
|
||||||
fi
|
fi
|
||||||
chown -R -f $uid:$gid ${basedir}/git ${basedir}/out ${basedir}/mono-glue ${basedir}/godot*.tar.gz
|
|
||||||
|
|
||||||
echo "All builds completed. Check `out/logs/` to validate that they all succeeded (e.g. `tail -n 1 out/logs/*`)."
|
|
||||||
|
|||||||
@@ -1,3 +1,2 @@
|
|||||||
#!/bin/bash
|
rm -rf releases tmp web
|
||||||
|
|
||||||
rm -rf releases steam tmp web
|
|
||||||
|
|||||||
4
clean.sh
4
clean.sh
@@ -1,4 +1,2 @@
|
|||||||
#!/bin/bash
|
rm -rf godot*.tar.gz mono-glue out releases tmp web
|
||||||
|
|
||||||
rm -rf godot*.tar.gz mono-glue out releases steam tmp web
|
|
||||||
git status
|
git status
|
||||||
|
|||||||
38
config.sh.in
38
config.sh.in
@@ -12,29 +12,6 @@
|
|||||||
# relevant tool in your PATH or an absolute path to run it from.
|
# relevant tool in your PATH or an absolute path to run it from.
|
||||||
export PODMAN='podman'
|
export PODMAN='podman'
|
||||||
|
|
||||||
# GitHub token for @GodotBuilder for releases on godotengine/godot-builds,
|
|
||||||
# can use a long expiry date.
|
|
||||||
# For stable releases to godotengine/godot, generate a personal token with
|
|
||||||
# write access to godotengine/godot for use in publish-release.sh.
|
|
||||||
export GH_TOKEN=''
|
|
||||||
|
|
||||||
# Path to a Git clone of https://github.com/godotengine/godot-builds.
|
|
||||||
# Only used for uploading official releases.
|
|
||||||
export GODOT_BUILDS_PATH=''
|
|
||||||
|
|
||||||
# Path to the directory with the Steam upload setup.
|
|
||||||
export UPLOAD_STEAM_PATH=''
|
|
||||||
|
|
||||||
# Path to the directory with the EGS upload setup.
|
|
||||||
export UPLOAD_EGS_PATH=''
|
|
||||||
|
|
||||||
# Path to the 'butler' binary for upload of stable releases to itch.io.
|
|
||||||
export UPLOAD_ITCH_BUTLER=''
|
|
||||||
|
|
||||||
# SSH hostname to upload Web editor builds to.
|
|
||||||
# Only used for uploading official releases.
|
|
||||||
export WEB_EDITOR_HOSTNAME=''
|
|
||||||
|
|
||||||
# Registry for build containers.
|
# Registry for build containers.
|
||||||
# The default registry is the one used for official Godot builds.
|
# The default registry is the one used for official Godot builds.
|
||||||
# Note that some of its images are private and only accessible to selected
|
# Note that some of its images are private and only accessible to selected
|
||||||
@@ -52,13 +29,19 @@ export BUILD_NAME='custom_build'
|
|||||||
# Default number of parallel cores for each build.
|
# Default number of parallel cores for each build.
|
||||||
export NUM_CORES=16
|
export NUM_CORES=16
|
||||||
|
|
||||||
# Set up your own Windows signing details below.
|
# Set up your own signing keystore and relevant details below.
|
||||||
# If you do not fill all SIGN_* fields, signing will be skipped.
|
# If you do not fill all SIGN_* fields, signing will be skipped.
|
||||||
|
|
||||||
|
# Path to pkcs12 archive.
|
||||||
|
export SIGN_KEYSTORE=''
|
||||||
|
|
||||||
|
# Password for the private key.
|
||||||
|
export SIGN_PASSWORD=''
|
||||||
|
|
||||||
# Name and URL of the signed application.
|
# Name and URL of the signed application.
|
||||||
# Use your own when making a thirdparty build.
|
# Use your own when making a thirdparty build.
|
||||||
export WINDOWS_SIGN_NAME=''
|
export SIGN_NAME=''
|
||||||
export WINDOWS_SIGN_URL=''
|
export SIGN_URL=''
|
||||||
|
|
||||||
# Hostname or IP address of an OSX host (Needed for signing)
|
# Hostname or IP address of an OSX host (Needed for signing)
|
||||||
# eg 'user@10.1.0.10'
|
# eg 'user@10.1.0.10'
|
||||||
@@ -98,6 +81,3 @@ export GODOT_ANDROID_SIGN_KEYSTORE=''
|
|||||||
export GODOT_ANDROID_KEYSTORE_ALIAS=''
|
export GODOT_ANDROID_KEYSTORE_ALIAS=''
|
||||||
# Password for the key used for signing the release build
|
# Password for the key used for signing the release build
|
||||||
export GODOT_ANDROID_SIGN_PASSWORD=''
|
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=''
|
|
||||||
|
|||||||
@@ -1,238 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Log output to a file automatically.
|
|
||||||
exec > >(tee -a "out/logs/publish-release") 2>&1
|
|
||||||
|
|
||||||
# Config
|
|
||||||
|
|
||||||
# For upload tools and signing/release keys.
|
|
||||||
source ./config.sh
|
|
||||||
|
|
||||||
godot_version=""
|
|
||||||
latest_stable=0
|
|
||||||
skip_stable=0
|
|
||||||
draft_arg=""
|
|
||||||
|
|
||||||
while getopts "h?v:lsd" opt; do
|
|
||||||
case "$opt" in
|
|
||||||
h|\?)
|
|
||||||
echo "Usage: $0 [OPTIONS...]"
|
|
||||||
echo
|
|
||||||
echo " -v godot version (e.g: 3.2-stable) [mandatory]"
|
|
||||||
echo " -l latest stable release (web editor, itch.io, EGS)"
|
|
||||||
echo " -s don't run stable specific steps"
|
|
||||||
echo " -d publish as draft release on GitHub"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
v)
|
|
||||||
godot_version=$OPTARG
|
|
||||||
;;
|
|
||||||
l)
|
|
||||||
latest_stable=1
|
|
||||||
;;
|
|
||||||
s)
|
|
||||||
skip_stable=1
|
|
||||||
;;
|
|
||||||
d)
|
|
||||||
draft_arg="-d"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -z "${godot_version}" ]; then
|
|
||||||
echo "Mandatory argument -v missing."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
basedir=$(pwd)
|
|
||||||
reldir=${basedir}/releases/${godot_version}
|
|
||||||
|
|
||||||
# Confirm
|
|
||||||
|
|
||||||
IFS=- read version status <<< "${godot_version}"
|
|
||||||
echo "Publishing Godot ${version} ${status}."
|
|
||||||
read -p "Is this correct (y/n)? " choice
|
|
||||||
case "$choice" in
|
|
||||||
y|Y ) echo "yes";;
|
|
||||||
n|N ) echo "No, aborting."; exit 0;;
|
|
||||||
* ) echo "Invalid choice, aborting."; exit 1;;
|
|
||||||
esac
|
|
||||||
template_version=${version}.${status}
|
|
||||||
|
|
||||||
# Config checks for stable releases.
|
|
||||||
|
|
||||||
if [ "${status}" == "stable" -a "${skip_stable}" == "0" ]; then
|
|
||||||
echo "Publishing a stable release. Checking that configuration is valid to perform stable release specific steps."
|
|
||||||
|
|
||||||
read -p "Enter personal access token (GH_TOKEN) for godotengine/godot: " personal_gh_token
|
|
||||||
if [[ "${personal_gh_token}" != "github_pat_"* ]]; then
|
|
||||||
echo "Provided personal access token should start with 'github_pat', aborting."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! gh api repos/godotengine/godot/git/refs/tags | grep -q ${godot_version}; then
|
|
||||||
echo "The tag '${godot_version}' does not exist in godotengine/godot, aborting."
|
|
||||||
echo "Push commits and create it manually before running this script."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d "${UPLOAD_STEAM_PATH}" ]; then
|
|
||||||
echo "Invalid config.sh: UPLOAD_STEAM_PATH is not a directory, aborting."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${latest_stable}" == "1" ]; then
|
|
||||||
if [ ! -d "${UPLOAD_EGS_PATH}" ]; then
|
|
||||||
echo "Invalid config.sh: UPLOAD_EGS_PATH is not a directory, aborting."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ ! -x "${UPLOAD_ITCH_BUTLER}" ]; then
|
|
||||||
echo "Invalid config.sh: UPLOAD_ITCH_BUTLER does not point to an executable, aborting."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Upload to GitHub godot-builds
|
|
||||||
|
|
||||||
echo "Uploading release to to godotengine/godot-builds repository."
|
|
||||||
|
|
||||||
if [ -z "${GODOT_BUILDS_PATH}" ]; then
|
|
||||||
echo "Missing path to godotengine/godot-builds clone in config.sh, necessary to upload releases. Aborting."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
${GODOT_BUILDS_PATH}/tools/upload-github.sh -v ${version} -f ${status} ${draft_arg}
|
|
||||||
|
|
||||||
# Stable release only
|
|
||||||
|
|
||||||
if [ "${status}" == "stable" -a "${skip_stable}" == "0" ]; then
|
|
||||||
namever=Godot_v${godot_version}
|
|
||||||
|
|
||||||
echo "Uploading stable release to main GitHub repository."
|
|
||||||
|
|
||||||
export GH_TOKEN=${personal_gh_token}
|
|
||||||
pushd git
|
|
||||||
# Get release details from existing godot-builds release.
|
|
||||||
release_info=$(gh release view ${godot_version} --repo godotengine/godot-builds --json name,body)
|
|
||||||
release_title=$(echo "$release_info" | jq -r '.name')
|
|
||||||
release_desc=$(echo "$release_info" | jq -r '.body')
|
|
||||||
|
|
||||||
gh release create ${godot_version} --repo godotengine/godot --title "$release_title" --notes "$release_desc" ${draft_arg}
|
|
||||||
gh release upload ${godot_version} ${reldir}/[Gg]* ${reldir}/mono/[Gg]*
|
|
||||||
# Concatenate SHA sums.
|
|
||||||
cp ${reldir}/SHA512-SUMS.txt .
|
|
||||||
cat ${reldir}/mono/SHA512-SUMS.txt >> SHA512-SUMS.txt
|
|
||||||
gh release upload ${godot_version} SHA512-SUMS.txt
|
|
||||||
rm SHA512-SUMS.txt
|
|
||||||
popd
|
|
||||||
|
|
||||||
echo "Uploading stable release to Steam."
|
|
||||||
|
|
||||||
pushd ${UPLOAD_STEAM_PATH}
|
|
||||||
rm -rf content/bin/[Gg]*
|
|
||||||
rm -rf content/editor_data/export_templates/*
|
|
||||||
cp -f ${basedir}/git/*.{md,txt,png,svg} content/
|
|
||||||
# Steam specific binaries prepared by build-release.sh
|
|
||||||
cp -r ${basedir}/steam/[Gg]* content/bin/
|
|
||||||
unzip ${reldir}/${namever}_export_templates.tpz -d content/editor_data/export_templates/
|
|
||||||
mv content/editor_data/export_templates/{templates,${template_version}}
|
|
||||||
steam_build/build.sh
|
|
||||||
popd
|
|
||||||
|
|
||||||
if [ "${latest_stable}" == "1" ]; then
|
|
||||||
echo "Uploading stable release to EGS (latest only)."
|
|
||||||
|
|
||||||
pushd ${UPLOAD_EGS_PATH}
|
|
||||||
rm -rf buildroot-*/*
|
|
||||||
unzip ${reldir}/${namever}_win64.exe.zip -d buildroot-win64/
|
|
||||||
unzip ${reldir}/${namever}_win32.exe.zip -d buildroot-win32/
|
|
||||||
unzip ${reldir}/${namever}_macos.universal.zip -d buildroot-macos/
|
|
||||||
./upload.sh -v ${godot_version}
|
|
||||||
popd
|
|
||||||
|
|
||||||
echo "Uploading stable release to itch.io (latest only)."
|
|
||||||
|
|
||||||
${UPLOAD_ITCH_BUTLER} push ${reldir}/${namever}_linux.x86_64.zip godotengine/godot:linux-64-stable --userversion ${godot_version}
|
|
||||||
${UPLOAD_ITCH_BUTLER} push ${reldir}/${namever}_linux.x86_32.zip godotengine/godot:linux-32-stable --userversion ${godot_version}
|
|
||||||
${UPLOAD_ITCH_BUTLER} push ${reldir}/${namever}_win64.exe.zip godotengine/godot:windows-64-stable --userversion ${godot_version}
|
|
||||||
${UPLOAD_ITCH_BUTLER} push ${reldir}/${namever}_win32.exe.zip godotengine/godot:windows-32-stable --userversion ${godot_version}
|
|
||||||
${UPLOAD_ITCH_BUTLER} push ${reldir}/${namever}_macos.universal.zip godotengine/godot:osx-64-stable --userversion ${godot_version}
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "All stable release upload steps done."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NuGet packages
|
|
||||||
|
|
||||||
publish_nuget_packages() {
|
|
||||||
for pkg in "$@"; do
|
|
||||||
dotnet nuget push $pkg --source "${NUGET_SOURCE}" --api-key "${NUGET_API_KEY}" --skip-duplicate
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ ! -z "${NUGET_SOURCE}" ] && [ ! -z "${NUGET_API_KEY}" ] && [[ $(type -P "dotnet") ]]; then
|
|
||||||
echo "Publishing NuGet packages..."
|
|
||||||
publish_nuget_packages out/linux/x86_64/tools-mono/GodotSharp/Tools/nupkgs/*.nupkg
|
|
||||||
else
|
|
||||||
echo "Disabling NuGet package publishing as config.sh does not define the required data (NUGET_SOURCE, NUGET_API_KEY), or dotnet can't be found in PATH."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Godot Android Editor
|
|
||||||
|
|
||||||
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."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Godot Android library
|
|
||||||
|
|
||||||
if [ -d "deps/keystore" ]; then
|
|
||||||
echo "Publishing Android library to MavenCentral..."
|
|
||||||
sh build-android/upload-mavencentral.sh
|
|
||||||
else
|
|
||||||
echo "Disabling Android library publishing as deps/keystore doesn't exist."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Web editor
|
|
||||||
|
|
||||||
echo "Uploading web editor... (with retry logic as it can be flaky)"
|
|
||||||
|
|
||||||
MAX_RETRIES=5
|
|
||||||
delay=5
|
|
||||||
|
|
||||||
retry_command() {
|
|
||||||
local attempt=1
|
|
||||||
local cmd=$1
|
|
||||||
while [ ${attempt} -le ${MAX_RETRIES} ]; do
|
|
||||||
echo "Attempt ${attempt}: Running command..."
|
|
||||||
eval "${cmd}" && return 0 # Success
|
|
||||||
|
|
||||||
echo "Command failed. Retrying in ${delay} seconds..."
|
|
||||||
sleep ${delay}
|
|
||||||
((attempt++))
|
|
||||||
delay=$((delay * 2)) # Exponential backoff
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "❌ Command failed after ${MAX_RETRIES} attempts."
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
command="sudo mv /home/akien/web_editor/${template_version} /var/www/editor.godotengine.org/public/releases/"
|
|
||||||
command="${command}; cd /var/www/editor.godotengine.org; sudo chown -R www-data:www-data public/releases/${template_version}"
|
|
||||||
command="${command}; sudo ./create-symlinks.sh -v ${template_version}"
|
|
||||||
if [ "${latest_stable}" == "1" ]; then
|
|
||||||
echo "Marking web editor build as 'latest'."
|
|
||||||
command="${command} -l"
|
|
||||||
fi
|
|
||||||
|
|
||||||
retry_command "scp -P 22 -r web/${template_version} ${WEB_EDITOR_HOSTNAME}:/home/akien/web_editor/"
|
|
||||||
sleep 2
|
|
||||||
retry_command "ssh -p 22 ${WEB_EDITOR_HOSTNAME} '${command}'"
|
|
||||||
|
|
||||||
echo "All publishing steps done. Check out/logs/publish-release to double check that all steps succeeded."
|
|
||||||
Reference in New Issue
Block a user