mirror of
https://github.com/godotengine/godot-build-scripts.git
synced 2026-01-04 02:09:44 +03:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5bf3bab772 | ||
|
|
d381d33b8e | ||
|
|
dea7aa483e | ||
|
|
9da8d72dfe | ||
|
|
4e25acea96 |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,7 +1,5 @@
|
|||||||
# User-specific configuration and signing keys
|
# User-specific configuration and signing key
|
||||||
config.sh
|
config.sh
|
||||||
*.jks
|
|
||||||
*.pfx
|
|
||||||
*.pkcs12
|
*.pkcs12
|
||||||
|
|
||||||
# Generated by build scripts
|
# Generated by build scripts
|
||||||
|
|||||||
@@ -9,50 +9,18 @@ export OPTIONS="production=yes"
|
|||||||
export OPTIONS_MONO="module_mono_enabled=yes mono_static=no"
|
export OPTIONS_MONO="module_mono_enabled=yes mono_static=no"
|
||||||
export TERM=xterm
|
export TERM=xterm
|
||||||
|
|
||||||
|
${ANDROID_SDK_ROOT}/cmdline-tools/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" 'platforms;android-30'
|
||||||
|
|
||||||
rm -rf godot
|
rm -rf godot
|
||||||
mkdir godot
|
mkdir godot
|
||||||
cd godot
|
cd godot
|
||||||
tar xf /root/godot.tar.gz --strip-components=1
|
tar xf /root/godot.tar.gz --strip-components=1
|
||||||
|
|
||||||
# Environment variables and keystore needed for signing store editor build,
|
|
||||||
# as well as signing and publishing to MavenCentral.
|
|
||||||
source /root/keystore/config.sh
|
|
||||||
|
|
||||||
store_release="yes"
|
|
||||||
if [ -z "${GODOT_ANDROID_SIGN_KEYSTORE}" ]; then
|
|
||||||
echo "No keystore provided to sign the Android release editor build, using debug build instead."
|
|
||||||
store_release="no"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Classical
|
# Classical
|
||||||
|
|
||||||
if [ "${CLASSICAL}" == "1" ]; then
|
if [ "${CLASSICAL}" == "1" ]; then
|
||||||
echo "Starting classical build for Android..."
|
echo "Starting classical build for Android..."
|
||||||
|
|
||||||
$SCONS platform=android android_arch=armv7 $OPTIONS tools=yes target=release_debug store_release=$store_release
|
|
||||||
$SCONS platform=android android_arch=arm64v8 $OPTIONS tools=yes target=release_debug store_release=$store_release
|
|
||||||
$SCONS platform=android android_arch=x86 $OPTIONS tools=yes target=release_debug store_release=$store_release
|
|
||||||
$SCONS platform=android android_arch=x86_64 $OPTIONS tools=yes target=release_debug store_release=$store_release
|
|
||||||
|
|
||||||
pushd platform/android/java
|
|
||||||
./gradlew generateGodotEditor
|
|
||||||
popd
|
|
||||||
|
|
||||||
mkdir -p /root/out/tools
|
|
||||||
# Copy the generated Android editor binaries (apk & aab).
|
|
||||||
if [ "$store_release" == "yes" ]; then
|
|
||||||
cp bin/android_editor_builds/android_editor-release.apk /root/out/tools/android_editor.apk
|
|
||||||
cp bin/android_editor_builds/android_editor-release.aab /root/out/tools/android_editor.aab
|
|
||||||
else
|
|
||||||
cp bin/android_editor_builds/android_editor-debug.apk /root/out/tools/android_editor.apk
|
|
||||||
cp bin/android_editor_builds/android_editor-debug.aab /root/out/tools/android_editor.aab
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Restart from a clean tarball, as we'll copy all the contents
|
|
||||||
# outside the container for the MavenCentral upload.
|
|
||||||
rm -rf /root/godot/*
|
|
||||||
tar xf /root/godot.tar.gz --strip-components=1
|
|
||||||
|
|
||||||
$SCONS platform=android android_arch=armv7 $OPTIONS tools=no target=release_debug
|
$SCONS platform=android android_arch=armv7 $OPTIONS tools=no target=release_debug
|
||||||
$SCONS platform=android android_arch=armv7 $OPTIONS tools=no target=release
|
$SCONS platform=android android_arch=armv7 $OPTIONS tools=no target=release
|
||||||
|
|
||||||
@@ -67,21 +35,13 @@ if [ "${CLASSICAL}" == "1" ]; then
|
|||||||
|
|
||||||
pushd platform/android/java
|
pushd platform/android/java
|
||||||
./gradlew generateGodotTemplates
|
./gradlew generateGodotTemplates
|
||||||
|
|
||||||
if [ "$store_release" == "yes" ]; then
|
|
||||||
# Copy source folder with compiled libs so we can optionally use it
|
|
||||||
# in a separate script to upload the templates to MavenCentral.
|
|
||||||
cp -r /root/godot /root/out/source/
|
|
||||||
# Backup ~/.gradle too so we can reuse all the downloaded stuff.
|
|
||||||
cp -r /root/.gradle /root/out/source/.gradle
|
|
||||||
fi
|
|
||||||
popd
|
popd
|
||||||
|
|
||||||
mkdir -p /root/out/templates
|
mkdir -p /root/out/templates
|
||||||
cp bin/android_source.zip /root/out/templates/
|
cp bin/android_source.zip /root/out/templates
|
||||||
cp bin/android_debug.apk /root/out/templates/
|
cp bin/android_debug.apk /root/out/templates/android_debug.apk
|
||||||
cp bin/android_release.apk /root/out/templates/
|
cp bin/android_release.apk /root/out/templates/android_release.apk
|
||||||
cp bin/godot-lib.release.aar /root/out/templates/
|
cp bin/godot-lib.release.aar /root/out/templates/godot-lib.release.aar
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Mono
|
# Mono
|
||||||
@@ -91,12 +51,13 @@ if [ "${MONO}" == "1" ]; then
|
|||||||
|
|
||||||
cp /root/mono-glue/*.cpp modules/mono/glue/
|
cp /root/mono-glue/*.cpp modules/mono/glue/
|
||||||
cp -r /root/mono-glue/GodotSharp/GodotSharp/Generated modules/mono/glue/GodotSharp/GodotSharp/
|
cp -r /root/mono-glue/GodotSharp/GodotSharp/Generated modules/mono/glue/GodotSharp/GodotSharp/
|
||||||
|
cp -r /root/mono-glue/GodotSharp/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
||||||
|
|
||||||
$SCONS platform=android android_arch=armv7 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-armv7-release tools=no target=release_debug
|
$SCONS platform=android android_arch=armv7 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-armeabi-v7a-release tools=no target=release_debug
|
||||||
$SCONS platform=android android_arch=armv7 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-armv7-release tools=no target=release
|
$SCONS platform=android android_arch=armv7 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-armeabi-v7a-release tools=no target=release
|
||||||
|
|
||||||
$SCONS platform=android android_arch=arm64v8 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-arm64v8-release tools=no target=release_debug
|
$SCONS platform=android android_arch=arm64v8 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-arm64-v8a-release tools=no target=release_debug
|
||||||
$SCONS platform=android android_arch=arm64v8 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-arm64v8-release tools=no target=release
|
$SCONS platform=android android_arch=arm64v8 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-arm64-v8a-release tools=no target=release
|
||||||
|
|
||||||
$SCONS platform=android android_arch=x86 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-x86-release tools=no target=release_debug
|
$SCONS platform=android android_arch=x86 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-x86-release tools=no target=release_debug
|
||||||
$SCONS platform=android android_arch=x86 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-x86-release tools=no target=release
|
$SCONS platform=android android_arch=x86 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-x86-release tools=no target=release
|
||||||
@@ -109,10 +70,10 @@ if [ "${MONO}" == "1" ]; then
|
|||||||
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_debug.apk /root/out/templates-mono/
|
cp bin/android_debug.apk /root/out/templates-mono/android_debug.apk
|
||||||
cp bin/android_release.apk /root/out/templates-mono/
|
cp bin/android_release.apk /root/out/templates-mono/android_release.apk
|
||||||
cp bin/godot-lib.release.aar /root/out/templates-mono/
|
cp bin/godot-lib.release.aar /root/out/templates-mono/godot-lib.release.aar
|
||||||
|
|
||||||
mkdir -p /root/out/templates-mono/bcl
|
mkdir -p /root/out/templates-mono/bcl
|
||||||
cp -r /root/mono-installs/android-bcl/* /root/out/templates-mono/bcl/
|
cp -r /root/mono-installs/android-bcl/* /root/out/templates-mono/bcl/
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
#/bin/bash
|
|
||||||
|
|
||||||
basedir="$(pwd)"
|
|
||||||
|
|
||||||
if [ ! -d "${basedir}/deps/keystore" ]; then
|
|
||||||
echo "Couldn't find ${basedir}/deps/keystore. Make sure to run this from the root folder of the Git repository."
|
|
||||||
fi
|
|
||||||
|
|
||||||
source ${basedir}/deps/keystore/config.sh
|
|
||||||
|
|
||||||
# Release the Godot Android library to MavenCentral
|
|
||||||
${PODMAN} run -it --rm \
|
|
||||||
-v ${basedir}/out/android/source:/root/godot -v ${basedir}/deps/keystore:/root/keystore \
|
|
||||||
localhost/godot-android:${IMAGE_VERSION} bash -c \
|
|
||||||
"source /root/keystore/config.sh && \
|
|
||||||
cp -r /root/godot/.gradle /root && \
|
|
||||||
cd /root/godot/platform/android/java && \
|
|
||||||
./gradlew publishTemplateReleasePublicationToSonatypeRepository --max-workers 1 closeAndReleaseSonatypeStagingRepository"
|
|
||||||
@@ -7,11 +7,11 @@ set -e
|
|||||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=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 lto=none"
|
export OPTIONS="production=yes use_lto=no"
|
||||||
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes"
|
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes"
|
||||||
export TERM=xterm
|
export TERM=xterm
|
||||||
|
|
||||||
export IOS_SDK="18.2"
|
export IOS_SDK="14.4"
|
||||||
export IOS_LIPO="/root/ioscross/arm64/bin/arm-apple-darwin11-lipo"
|
export IOS_LIPO="/root/ioscross/arm64/bin/arm-apple-darwin11-lipo"
|
||||||
|
|
||||||
rm -rf godot
|
rm -rf godot
|
||||||
@@ -24,33 +24,19 @@ tar xf /root/godot.tar.gz --strip-components=1
|
|||||||
if [ "${CLASSICAL}" == "1" ]; then
|
if [ "${CLASSICAL}" == "1" ]; then
|
||||||
echo "Starting classical build for iOS..."
|
echo "Starting classical build for iOS..."
|
||||||
|
|
||||||
# arm64 device
|
$SCONS platform=iphone $OPTIONS arch=arm64 tools=no target=release_debug \
|
||||||
$SCONS platform=iphone $OPTIONS arch=arm64 tools=no ios_simulator=no target=release_debug \
|
|
||||||
IPHONESDK="/root/ioscross/arm64/SDK/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/arm64/" ios_triple="arm-apple-darwin11-"
|
IPHONESDK="/root/ioscross/arm64/SDK/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/arm64/" ios_triple="arm-apple-darwin11-"
|
||||||
$SCONS platform=iphone $OPTIONS arch=arm64 tools=no ios_simulator=no target=release \
|
$SCONS platform=iphone $OPTIONS arch=arm64 tools=no target=release \
|
||||||
IPHONESDK="/root/ioscross/arm64/SDK/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/arm64/" ios_triple="arm-apple-darwin11-"
|
IPHONESDK="/root/ioscross/arm64/SDK/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/arm64/" ios_triple="arm-apple-darwin11-"
|
||||||
|
|
||||||
# arm64 simulator
|
$SCONS platform=iphone $OPTIONS arch=x86_64 tools=no target=release_debug \
|
||||||
# Disabled for now as it doesn't work with cctools-port and current LLVM.
|
IPHONESDK="/root/ioscross/x86_64/SDK/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/x86_64/" ios_triple="x86_64-apple-darwin11-"
|
||||||
# See https://github.com/godotengine/build-containers/pull/85.
|
$SCONS platform=iphone $OPTIONS arch=x86_64 tools=no target=release \
|
||||||
#$SCONS platform=iphone $OPTIONS arch=arm64 tools=no ios_simulator=yes target=release_debug \
|
IPHONESDK="/root/ioscross/x86_64/SDK/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/x86_64/" ios_triple="x86_64-apple-darwin11-"
|
||||||
# IPHONESDK="/root/ioscross/arm64_sim/SDK/iPhoneSimulator${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/arm64_sim/" ios_triple="arm-apple-darwin11-"
|
|
||||||
#$SCONS platform=iphone $OPTIONS arch=arm64 tools=no ios_simulator=no target=release \
|
|
||||||
# IPHONESDK="/root/ioscross/arm64_sim/SDK/iPhoneSimulator${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/arm64_sim/" ios_triple="arm-apple-darwin11-"
|
|
||||||
|
|
||||||
# x86_64 simulator
|
|
||||||
$SCONS platform=iphone $OPTIONS arch=x86_64 tools=no ios_simulator=yes target=release_debug \
|
|
||||||
IPHONESDK="/root/ioscross/x86_64_sim/SDK/iPhoneSimulator${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/x86_64_sim/" ios_triple="x86_64-apple-darwin11-"
|
|
||||||
$SCONS platform=iphone $OPTIONS arch=x86_64 tools=no ios_simulator=yes target=release \
|
|
||||||
IPHONESDK="/root/ioscross/x86_64_sim/SDK/iPhoneSimulator${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/x86_64_sim/" ios_triple="x86_64-apple-darwin11-"
|
|
||||||
|
|
||||||
mkdir -p /root/out/templates
|
mkdir -p /root/out/templates
|
||||||
cp bin/libgodot.iphone.opt.arm64.a /root/out/templates/libgodot.iphone.a
|
$IOS_LIPO -create bin/libgodot.iphone.opt.arm64.a bin/libgodot.iphone.opt.x86_64.a -output /root/out/templates/libgodot.iphone.opt.fat
|
||||||
cp bin/libgodot.iphone.opt.debug.arm64.a /root/out/templates/libgodot.iphone.debug.a
|
$IOS_LIPO -create bin/libgodot.iphone.opt.debug.arm64.a bin/libgodot.iphone.opt.debug.x86_64.a -output /root/out/templates/libgodot.iphone.opt.debug.fat
|
||||||
#$IOS_LIPO -create bin/libgodot.iphone.opt.arm64.simulator.a bin/libgodot.iphone.opt.x86_64.simulator.a -output /root/out/templates/libgodot.iphone.simulator.a
|
|
||||||
#$IOS_LIPO -create bin/libgodot.iphone.opt.debug.arm64.simulator.a bin/libgodot.iphone.opt.debug.x86_64.simulator.a -output /root/out/templates/libgodot.iphone.debug.simulator.a
|
|
||||||
cp bin/libgodot.iphone.opt.x86_64.simulator.a /root/out/templates/libgodot.iphone.simulator.a
|
|
||||||
cp bin/libgodot.iphone.opt.debug.x86_64.simulator.a /root/out/templates/libgodot.iphone.debug.simulator.a
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Mono
|
# Mono
|
||||||
@@ -62,52 +48,29 @@ if [ "${MONO}" == "1" ]; then
|
|||||||
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/
|
||||||
cp -r /root/mono-glue/GodotSharp/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
cp -r /root/mono-glue/GodotSharp/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
||||||
|
|
||||||
# arm64 device
|
$SCONS platform=iphone $OPTIONS $OPTIONS_MONO arch=arm64 mono_prefix=/root/mono-installs/ios-arm64-release tools=no target=release_debug \
|
||||||
$SCONS platform=iphone $OPTIONS $OPTIONS_MONO arch=arm64 ios_simulator=no mono_prefix=/root/mono-installs/ios-arm64-release tools=no target=release_debug \
|
|
||||||
IPHONESDK="/root/ioscross/arm64/SDK/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/arm64/" ios_triple="arm-apple-darwin11-"
|
IPHONESDK="/root/ioscross/arm64/SDK/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/arm64/" ios_triple="arm-apple-darwin11-"
|
||||||
$SCONS platform=iphone $OPTIONS $OPTIONS_MONO arch=arm64 ios_simulator=no mono_prefix=/root/mono-installs/ios-arm64-release tools=no target=release \
|
$SCONS platform=iphone $OPTIONS $OPTIONS_MONO arch=arm64 mono_prefix=/root/mono-installs/ios-arm64-release tools=no target=release \
|
||||||
IPHONESDK="/root/ioscross/arm64/SDK/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/arm64/" ios_triple="arm-apple-darwin11-"
|
IPHONESDK="/root/ioscross/arm64/SDK/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/arm64/" ios_triple="arm-apple-darwin11-"
|
||||||
|
|
||||||
# arm64 simulator
|
$SCONS platform=iphone $OPTIONS $OPTIONS_MONO arch=x86_64 mono_prefix=/root/mono-installs/ios-x86_64-release tools=no target=release_debug \
|
||||||
# Disabled for now as it doesn't work with cctools-port and current LLVM.
|
IPHONESDK="/root/ioscross/x86_64/SDK/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/x86_64/" ios_triple="x86_64-apple-darwin11-"
|
||||||
# See https://github.com/godotengine/build-containers/pull/85.
|
$SCONS platform=iphone $OPTIONS $OPTIONS_MONO arch=x86_64 mono_prefix=/root/mono-installs/ios-x86_64-release tools=no target=release \
|
||||||
#$SCONS platform=iphone $OPTIONS $OPTIONS_MONO arch=arm64 ios_simulator=yes mono_prefix=/root/mono-installs/ios-arm64-sim-release tools=no target=release_debug \
|
IPHONESDK="/root/ioscross/x86_64/SDK/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/x86_64/" ios_triple="x86_64-apple-darwin11-"
|
||||||
# IPHONESDK="/root/ioscross/arm64_sim/SDK/iPhoneSimulator${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/arm64_sim/" ios_triple="arm-apple-darwin11-"
|
|
||||||
#$SCONS platform=iphone $OPTIONS $OPTIONS_MONO arch=arm64 ios_simulator=yes mono_prefix=/root/mono-installs/ios-arm64-sim-release tools=no target=release \
|
|
||||||
# IPHONESDK="/root/ioscross/arm64_sim/SDK/iPhoneSimulator${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/arm64_sim/" ios_triple="arm-apple-darwin11-"
|
|
||||||
|
|
||||||
# x86_64 simulator
|
|
||||||
$SCONS platform=iphone $OPTIONS $OPTIONS_MONO arch=x86_64 ios_simulator=yes mono_prefix=/root/mono-installs/ios-x86_64-release tools=no target=release_debug \
|
|
||||||
IPHONESDK="/root/ioscross/x86_64_sim/SDK/iPhoneSimulator${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/x86_64_sim/" ios_triple="x86_64-apple-darwin11-"
|
|
||||||
$SCONS platform=iphone $OPTIONS $OPTIONS_MONO arch=x86_64 ios_simulator=yes mono_prefix=/root/mono-installs/ios-x86_64-release tools=no target=release \
|
|
||||||
IPHONESDK="/root/ioscross/x86_64_sim/SDK/iPhoneSimulator${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/x86_64_sim/" ios_triple="x86_64-apple-darwin11-"
|
|
||||||
|
|
||||||
mkdir -p /root/out/templates-mono
|
mkdir -p /root/out/templates-mono
|
||||||
|
$IOS_LIPO -create bin/libgodot.iphone.opt.arm64.a bin/libgodot.iphone.opt.x86_64.a -output /root/out/templates-mono/libgodot.iphone.opt.fat
|
||||||
|
$IOS_LIPO -create bin/libgodot.iphone.opt.debug.arm64.a bin/libgodot.iphone.opt.debug.x86_64.a -output /root/out/templates-mono/libgodot.iphone.opt.debug.fat
|
||||||
|
|
||||||
cp bin/libgodot.iphone.opt.arm64.a /root/out/templates-mono/libgodot.iphone.a
|
mkdir -p /root/out/templates-mono/iphone-mono-libs
|
||||||
cp bin/libgodot.iphone.opt.debug.arm64.a /root/out/templates-mono/libgodot.iphone.debug.a
|
$IOS_LIPO -create bin/libmonosgen-2.0.iphone.arm64.a bin/libmonosgen-2.0.iphone.x86_64.a -output /root/out/templates-mono/iphone-mono-libs/libmonosgen-2.0.iphone.fat.a
|
||||||
#$IOS_LIPO -create bin/libgodot.iphone.opt.arm64.simulator.a bin/libgodot.iphone.opt.x86_64.simulator.a -output /root/out/templates-mono/libgodot.iphone.simulator.a
|
$IOS_LIPO -create bin/libmono-native.iphone.arm64.a bin/libmono-native.iphone.x86_64.a -output /root/out/templates-mono/iphone-mono-libs/libmono-native.iphone.fat.a
|
||||||
#$IOS_LIPO -create bin/libgodot.iphone.opt.debug.arm64.simulator.a bin/libgodot.iphone.opt.debug.x86_64.simulator.a -output /root/out/templates-mono/libgodot.iphone.debug.simulator.a
|
$IOS_LIPO -create bin/libmono-profiler-log.iphone.arm64.a bin/libmono-profiler-log.iphone.x86_64.a -output /root/out/templates-mono/iphone-mono-libs/libmono-profiler-log.iphone.fat.a
|
||||||
cp bin/libgodot.iphone.opt.x86_64.simulator.a /root/out/templates-mono/libgodot.iphone.simulator.a
|
|
||||||
cp bin/libgodot.iphone.opt.debug.x86_64.simulator.a /root/out/templates-mono/libgodot.iphone.debug.simulator.a
|
|
||||||
|
|
||||||
cp -r misc/dist/iphone-mono-libs /root/out/templates-mono/iphone-mono-libs
|
|
||||||
|
|
||||||
cp bin/libmonosgen-2.0.iphone.arm64.a /root/out/templates-mono/iphone-mono-libs/libmonosgen-2.0.xcframework/ios-arm64/libmonosgen.a
|
|
||||||
cp bin/libmono-native.iphone.arm64.a /root/out/templates-mono/iphone-mono-libs/libmono-native.xcframework/ios-arm64/libmono-native.a
|
|
||||||
cp bin/libmono-profiler-log.iphone.arm64.a /root/out/templates-mono/iphone-mono-libs/libmono-profiler-log.xcframework/ios-arm64/libmono-profiler-log.a
|
|
||||||
|
|
||||||
#$IOS_LIPO -create bin/libmonosgen-2.0.iphone.arm64.simulator.a bin/libmonosgen-2.0.iphone.x86_64.simulator.a -output /root/out/templates-mono/iphone-mono-libs/libmonosgen-2.0.xcframework/ios-arm64_x86_64-simulator/libmonosgen.a
|
|
||||||
#$IOS_LIPO -create bin/libmono-native.iphone.arm64.simulator.a bin/libmono-native.iphone.x86_64.simulator.a -output /root/out/templates-mono/iphone-mono-libs/libmono-native.xcframework/ios-arm64_x86_64-simulator/libmono-native.a
|
|
||||||
#$IOS_LIPO -create bin/libmono-profiler-log.iphone.arm64.simulator.a bin/libmono-profiler-log.iphone.x86_64.simulator.a -output /root/out/templates-mono/iphone-mono-libs/libmono-profiler-log.xcframework/ios-arm64_x86_64-simulator/libmono-profiler-log.a
|
|
||||||
cp bin/libmonosgen-2.0.iphone.x86_64.simulator.a /root/out/templates-mono/iphone-mono-libs/libmonosgen-2.0.xcframework/ios-arm64_x86_64-simulator/libmonosgen.a
|
|
||||||
cp bin/libmono-native.iphone.x86_64.simulator.a /root/out/templates-mono/iphone-mono-libs/libmono-native.xcframework/ios-arm64_x86_64-simulator/libmono-native.a
|
|
||||||
cp bin/libmono-profiler-log.iphone.x86_64.simulator.a /root/out/templates-mono/iphone-mono-libs/libmono-profiler-log.xcframework/ios-arm64_x86_64-simulator/libmono-profiler-log.a
|
|
||||||
|
|
||||||
# The Mono libraries for the interpreter are not available for simulator builds
|
# The Mono libraries for the interpreter are not available for simulator builds
|
||||||
cp bin/libmono-ee-interp.iphone.arm64.a /root/out/templates-mono/iphone-mono-libs/libmono-ee-interp.xcframework/ios-arm64/libmono-ee-interp.a
|
$IOS_LIPO -create bin/libmono-ee-interp.iphone.arm64.a -output /root/out/templates-mono/iphone-mono-libs/libmono-ee-interp.iphone.fat.a
|
||||||
cp bin/libmono-icall-table.iphone.arm64.a /root/out/templates-mono/iphone-mono-libs/libmono-icall-table.xcframework/ios-arm64/libmono-icall-table.a
|
$IOS_LIPO -create bin/libmono-icall-table.iphone.arm64.a -output /root/out/templates-mono/iphone-mono-libs/libmono-icall-table.iphone.fat.a
|
||||||
cp bin/libmono-ilgen.iphone.arm64.a /root/out/templates-mono/iphone-mono-libs/libmono-ilgen.xcframework/ios-arm64/libmono-ilgen.a
|
$IOS_LIPO -create bin/libmono-ilgen.iphone.arm64.a -output /root/out/templates-mono/iphone-mono-libs/libmono-ilgen.iphone.fat.a
|
||||||
|
|
||||||
mkdir -p /root/out/templates-mono/bcl
|
mkdir -p /root/out/templates-mono/bcl
|
||||||
cp -r /root/mono-installs/ios-bcl/* /root/out/templates-mono/bcl
|
cp -r /root/mono-installs/ios-bcl/* /root/out/templates-mono/bcl
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ set -e
|
|||||||
|
|
||||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
||||||
export OPTIONS="production=yes"
|
export OPTIONS="production=yes"
|
||||||
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes mono_prefix=/root/mono-installs/wasm-runtime-release lto=none"
|
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes mono_prefix=/root/mono-installs/wasm-runtime-release use_lto=no"
|
||||||
export TERM=xterm
|
export TERM=xterm
|
||||||
|
|
||||||
rm -rf godot
|
rm -rf godot
|
||||||
|
|||||||
@@ -5,12 +5,18 @@ set -e
|
|||||||
# Config
|
# Config
|
||||||
|
|
||||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
||||||
export OPTIONS="production=yes LINKFLAGS=-s"
|
export OPTIONS="production=yes"
|
||||||
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes"
|
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes"
|
||||||
export MONO_PREFIX_X86_64="/root/mono-installs/desktop-linux-x86_64-release"
|
|
||||||
export MONO_PREFIX_X86="/root/mono-installs/desktop-linux-x86-release"
|
|
||||||
export TERM=xterm
|
export TERM=xterm
|
||||||
|
|
||||||
|
# For i386 we're still using an old GCC 5 version from Ubuntu 16.04 as
|
||||||
|
# upgrading the compiler seems to introduce weird issues.
|
||||||
|
# Since that GCC version is fairly old, let's avoid LTO which wasn't so
|
||||||
|
# mature at the time.
|
||||||
|
if [ "$(getconf LONG_BIT)" == "32" ]; then
|
||||||
|
export OPTIONS="$OPTIONS use_lto=no"
|
||||||
|
fi
|
||||||
|
|
||||||
rm -rf godot
|
rm -rf godot
|
||||||
mkdir godot
|
mkdir godot
|
||||||
cd godot
|
cd godot
|
||||||
@@ -21,56 +27,15 @@ tar xf /root/godot.tar.gz --strip-components=1
|
|||||||
if [ "${CLASSICAL}" == "1" ]; then
|
if [ "${CLASSICAL}" == "1" ]; then
|
||||||
echo "Starting classical build for Linux..."
|
echo "Starting classical build for Linux..."
|
||||||
|
|
||||||
export PATH="${GODOT_SDK_LINUX_X86_64}/bin:${BASE_PATH}"
|
|
||||||
|
|
||||||
$SCONS platform=x11 $OPTIONS tools=yes target=release_debug
|
$SCONS platform=x11 $OPTIONS tools=yes target=release_debug
|
||||||
mkdir -p /root/out/x64/tools
|
mkdir -p /root/out/tools
|
||||||
cp -rvp bin/* /root/out/x64/tools
|
cp -rvp bin/* /root/out/tools
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
|
|
||||||
$SCONS platform=x11 $OPTIONS tools=no target=release_debug
|
$SCONS platform=x11 $OPTIONS tools=no target=release_debug
|
||||||
$SCONS platform=x11 $OPTIONS tools=no target=release
|
$SCONS platform=x11 $OPTIONS tools=no target=release
|
||||||
mkdir -p /root/out/x64/templates
|
mkdir -p /root/out/templates
|
||||||
cp -rvp bin/* /root/out/x64/templates
|
cp -rvp bin/* /root/out/templates
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
export PATH="${GODOT_SDK_LINUX_X86_32}/bin:${BASE_PATH}"
|
|
||||||
|
|
||||||
$SCONS platform=x11 bits=32 $OPTIONS tools=yes target=release_debug
|
|
||||||
mkdir -p /root/out/x86/tools
|
|
||||||
cp -rvp bin/* /root/out/x86/tools
|
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
$SCONS platform=x11 bits=32 $OPTIONS tools=no target=release_debug
|
|
||||||
$SCONS platform=x11 bits=32 $OPTIONS tools=no target=release
|
|
||||||
mkdir -p /root/out/x86/templates
|
|
||||||
cp -rvp bin/* /root/out/x86/templates
|
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
export PATH="${GODOT_SDK_LINUX_ARM64}/bin:${BASE_PATH}"
|
|
||||||
|
|
||||||
$SCONS platform=x11 arch=arm64 $OPTIONS tools=yes target=release_debug
|
|
||||||
mkdir -p /root/out/arm64/tools
|
|
||||||
cp -rvp bin/* /root/out/arm64/tools
|
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
$SCONS platform=x11 arch=arm64 $OPTIONS tools=no target=release_debug
|
|
||||||
$SCONS platform=x11 arch=arm64 $OPTIONS tools=no target=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=x11 arch=arm $OPTIONS tools=yes target=release_debug
|
|
||||||
mkdir -p /root/out/arm/tools
|
|
||||||
cp -rvp bin/* /root/out/arm/tools
|
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
$SCONS platform=x11 arch=arm $OPTIONS tools=no target=release_debug
|
|
||||||
$SCONS platform=x11 arch=arm $OPTIONS tools=no target=release
|
|
||||||
mkdir -p /root/out/arm/templates
|
|
||||||
cp -rvp bin/* /root/out/arm/templates
|
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -82,33 +47,21 @@ if [ "${MONO}" == "1" ]; then
|
|||||||
cp /root/mono-glue/*.cpp modules/mono/glue/
|
cp /root/mono-glue/*.cpp modules/mono/glue/
|
||||||
cp -r /root/mono-glue/GodotSharp/GodotSharp/Generated modules/mono/glue/GodotSharp/GodotSharp/
|
cp -r /root/mono-glue/GodotSharp/GodotSharp/Generated modules/mono/glue/GodotSharp/GodotSharp/
|
||||||
cp -r /root/mono-glue/GodotSharp/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
cp -r /root/mono-glue/GodotSharp/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
||||||
|
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig/
|
||||||
|
|
||||||
export PATH="${GODOT_SDK_LINUX_X86_64}/bin:${BASE_PATH}"
|
# Workaround for MSBuild segfault on Ubuntu containers, we build the CIL on Fedora and copy here.
|
||||||
export OPTIONS_MONO_PREFIX="${OPTIONS} ${OPTIONS_MONO} mono_prefix=${MONO_PREFIX_X86_64}"
|
mkdir -p bin
|
||||||
|
cp -r /root/mono-glue/cil/GodotSharp bin/
|
||||||
|
|
||||||
$SCONS platform=x11 $OPTIONS_MONO_PREFIX tools=yes target=release_debug copy_mono_root=yes
|
$SCONS platform=x11 $OPTIONS $OPTIONS_MONO tools=yes target=release_debug copy_mono_root=yes build_cil=no
|
||||||
mkdir -p /root/out/x64/tools-mono
|
mkdir -p /root/out/tools-mono
|
||||||
cp -rvp bin/* /root/out/x64/tools-mono
|
cp -rvp bin/* /root/out/tools-mono
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
|
|
||||||
$SCONS platform=x11 $OPTIONS_MONO_PREFIX tools=no target=release_debug
|
$SCONS platform=x11 $OPTIONS $OPTIONS_MONO tools=no target=release_debug
|
||||||
$SCONS platform=x11 $OPTIONS_MONO_PREFIX tools=no target=release
|
$SCONS platform=x11 $OPTIONS $OPTIONS_MONO tools=no target=release
|
||||||
mkdir -p /root/out/x64/templates-mono
|
mkdir -p /root/out/templates-mono
|
||||||
cp -rvp bin/* /root/out/x64/templates-mono
|
cp -rvp bin/* /root/out/templates-mono
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
export PATH="${GODOT_SDK_LINUX_X86_32}/bin:${BASE_PATH}"
|
|
||||||
export OPTIONS_MONO_PREFIX="${OPTIONS} ${OPTIONS_MONO} mono_prefix=${MONO_PREFIX_X86}"
|
|
||||||
|
|
||||||
$SCONS platform=x11 bits=32 $OPTIONS_MONO_PREFIX tools=yes target=release_debug copy_mono_root=yes
|
|
||||||
mkdir -p /root/out/x86/tools-mono
|
|
||||||
cp -rvp bin/* /root/out/x86/tools-mono
|
|
||||||
rm -rf bin
|
|
||||||
|
|
||||||
$SCONS platform=x11 bits=32 $OPTIONS_MONO_PREFIX tools=no target=release_debug
|
|
||||||
$SCONS platform=x11 bits=32 $OPTIONS_MONO_PREFIX tools=no target=release
|
|
||||||
mkdir -p /root/out/x86/templates-mono
|
|
||||||
cp -rvp bin/* /root/out/x86/templates-mono
|
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -5,12 +5,10 @@ set -e
|
|||||||
# Config
|
# Config
|
||||||
|
|
||||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
||||||
export OPTIONS="osxcross_sdk=darwin24.2 production=yes"
|
export OPTIONS="osxcross_sdk=darwin20.2 production=yes"
|
||||||
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes"
|
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes mono_prefix=/root/dependencies/mono"
|
||||||
export MONO_PREFIX_X86_64="/root/mono-installs/desktop-osx-x86_64-release"
|
|
||||||
export MONO_PREFIX_ARM64="/root/mono-installs/desktop-osx-arm64-release"
|
|
||||||
export STRIP="x86_64-apple-darwin24.2-strip -u -r"
|
|
||||||
export TERM=xterm
|
export TERM=xterm
|
||||||
|
export STRIP="x86_64-apple-darwin20.2-strip -u -r"
|
||||||
|
|
||||||
rm -rf godot
|
rm -rf godot
|
||||||
mkdir godot
|
mkdir godot
|
||||||
@@ -54,42 +52,26 @@ if [ "${MONO}" == "1" ]; then
|
|||||||
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/
|
||||||
cp -r /root/mono-glue/GodotSharp/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
cp -r /root/mono-glue/GodotSharp/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
||||||
|
|
||||||
# Note: A bit of dylib wrangling involved as x86_64 and arm64 builds both generate GodotSharp
|
$SCONS platform=osx $OPTIONS $OPTIONS_MONO arch=x86_64 tools=yes target=release_debug copy_mono_root=yes
|
||||||
# so the second build overrides the first, but we need to lipo the libs to make them universal.
|
$STRIP bin/godot.osx.opt.tools.x86_64.mono
|
||||||
# We also need to ensure that /etc/mono/config has the proper filenames (keep arm64 as the last
|
#$SCONS platform=osx $OPTIONS $OPTIONS_MONO arch=arm64 tools=yes target=release_debug copy_mono_root=yes
|
||||||
# build so that we rely on its config, which has libmono-native.dylib instead of
|
#lipo -create bin/godot.osx.opt.tools.x86_64.mono bin/godot.osx.opt.tools.arm64.mono -output bin/godot.osx.opt.tools.universal.mono
|
||||||
# libmono-native-compat.dylib).
|
#$STRIP bin/godot.osx.opt.tools.universal.mono
|
||||||
mkdir -p tmp-lib/{x86_64,arm64}
|
|
||||||
|
|
||||||
$SCONS platform=osx $OPTIONS $OPTIONS_MONO mono_prefix=$MONO_PREFIX_X86_64 arch=x86_64 tools=yes target=release_debug copy_mono_root=yes
|
|
||||||
cp bin/GodotSharp/Mono/lib/*.dylib tmp-lib/x86_64/
|
|
||||||
$SCONS platform=osx $OPTIONS $OPTIONS_MONO mono_prefix=$MONO_PREFIX_ARM64 arch=arm64 tools=yes target=release_debug copy_mono_root=yes
|
|
||||||
cp bin/GodotSharp/Mono/lib/*.dylib tmp-lib/arm64/
|
|
||||||
lipo -create bin/godot.osx.opt.tools.x86_64.mono bin/godot.osx.opt.tools.arm64.mono -output bin/godot.osx.opt.tools.universal.mono
|
|
||||||
$STRIP bin/godot.osx.opt.tools.universal.mono
|
|
||||||
|
|
||||||
# Make universal versions of the dylibs we use.
|
|
||||||
lipo -create tmp-lib/x86_64/libmono-native.dylib tmp-lib/arm64/libmono-native.dylib -output tmp-lib/libmono-native.dylib
|
|
||||||
lipo -create tmp-lib/x86_64/libMonoPosixHelper.dylib tmp-lib/arm64/libMonoPosixHelper.dylib -output tmp-lib/libMonoPosixHelper.dylib
|
|
||||||
lipo -create tmp-lib/x86_64/libmono-btls-shared.dylib tmp-lib/arm64/libmono-btls-shared.dylib -output tmp-lib/libmono-btls-shared.dylib
|
|
||||||
|
|
||||||
cp -f tmp-lib/*.dylib bin/GodotSharp/Mono/lib/
|
|
||||||
|
|
||||||
mkdir -p /root/out/tools-mono
|
mkdir -p /root/out/tools-mono
|
||||||
cp -rvp bin/* /root/out/tools-mono
|
cp -rvp bin/* /root/out/tools-mono
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
|
|
||||||
$SCONS platform=osx $OPTIONS $OPTIONS_MONO mono_prefix=$MONO_PREFIX_X86_64 arch=x86_64 tools=no target=release_debug
|
$SCONS platform=osx $OPTIONS $OPTIONS_MONO arch=x86_64 tools=no target=release_debug
|
||||||
$SCONS platform=osx $OPTIONS $OPTIONS_MONO mono_prefix=$MONO_PREFIX_ARM64 arch=arm64 tools=no target=release_debug
|
$STRIP bin/godot.osx.opt.debug.x86_64.mono
|
||||||
lipo -create bin/godot.osx.opt.debug.x86_64.mono bin/godot.osx.opt.debug.arm64.mono -output bin/godot.osx.opt.debug.universal.mono
|
#$SCONS platform=osx $OPTIONS $OPTIONS_MONO arch=arm64 tools=no target=release_debug
|
||||||
$STRIP bin/godot.osx.opt.debug.universal.mono
|
#lipo -create bin/godot.osx.opt.debug.x86_64.mono bin/godot.osx.opt.debug.arm64.mono -output bin/godot.osx.opt.debug.universal.mono
|
||||||
$SCONS platform=osx $OPTIONS $OPTIONS_MONO mono_prefix=$MONO_PREFIX_X86_64 arch=x86_64 tools=no target=release
|
#$STRIP bin/godot.osx.opt.debug.universal.mono
|
||||||
$SCONS platform=osx $OPTIONS $OPTIONS_MONO mono_prefix=$MONO_PREFIX_ARM64 arch=arm64 tools=no target=release
|
$SCONS platform=osx $OPTIONS $OPTIONS_MONO arch=x86_64 tools=no target=release
|
||||||
lipo -create bin/godot.osx.opt.x86_64.mono bin/godot.osx.opt.arm64.mono -output bin/godot.osx.opt.universal.mono
|
$STRIP bin/godot.osx.opt.x86_64.mono
|
||||||
$STRIP bin/godot.osx.opt.universal.mono
|
#$SCONS platform=osx $OPTIONS $OPTIONS_MONO arch=arm64 tools=no target=release
|
||||||
|
#lipo -create bin/godot.osx.opt.x86_64.mono bin/godot.osx.opt.arm64.mono -output bin/godot.osx.opt.universal.mono
|
||||||
cp -f tmp-lib/*.dylib bin/data.mono.osx.64.release/Mono/lib/
|
#$STRIP bin/godot.osx.opt.universal.mono
|
||||||
cp -f tmp-lib/*.dylib bin/data.mono.osx.64.release_debug/Mono/lib/
|
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
12
build-macosx/editor.entitlements
Normal file
12
build-macosx/editor.entitlements
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>com.apple.security.device.audio-input</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.device.camera</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.cs.disable-library-validation</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
18
build-macosx/editor_mono.entitlements
Normal file
18
build-macosx/editor_mono.entitlements
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.cs.allow-jit</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.cs.disable-library-validation</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.device.audio-input</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.device.camera</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -22,10 +22,18 @@ if [ "${MONO}" == "1" ]; then
|
|||||||
mono --version
|
mono --version
|
||||||
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig/
|
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig/
|
||||||
|
|
||||||
${SCONS} platform=x11 ${OPTIONS} target=release_debug tools=yes module_mono_enabled=yes mono_glue=no
|
${SCONS} platform=x11 bits=64 ${OPTIONS} target=release_debug tools=yes module_mono_enabled=yes mono_glue=no
|
||||||
|
|
||||||
rm -rf /root/mono-glue/*
|
rm -rf /root/mono-glue/*
|
||||||
xvfb-run bin/godot.x11.opt.tools.64.mono --audio-driver Dummy --generate-mono-glue /root/mono-glue || /bin/true
|
xvfb-run bin/godot.x11.opt.tools.64.mono --audio-driver Dummy --generate-mono-glue /root/mono-glue || /bin/true
|
||||||
|
|
||||||
|
# Build and copy CIL that we'll need for Ubuntu 14.04 Linux builds
|
||||||
|
# to workaround Mono MSBuild segfault in our containers.
|
||||||
|
xvfb-run bin/godot.x11.opt.tools.64.mono --audio-driver Dummy --generate-mono-glue modules/mono/glue || /bin/true
|
||||||
|
${SCONS} platform=x11 bits=64 ${OPTIONS} target=release_debug tools=yes module_mono_enabled=yes mono_glue=yes build_cil=yes
|
||||||
|
|
||||||
|
mkdir /root/mono-glue/cil
|
||||||
|
cp -r bin/GodotSharp /root/mono-glue/cil/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Mono glue generated successfully"
|
echo "Mono glue generated successfully"
|
||||||
|
|||||||
188
build-release.sh
188
build-release.sh
@@ -2,26 +2,23 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Log output to a file automatically.
|
|
||||||
exec > >(tee -a "out/logs/build-release") 2>&1
|
|
||||||
|
|
||||||
# Config
|
# Config
|
||||||
|
|
||||||
# For signing keystore and password.
|
# For signing keystore and password.
|
||||||
source ./config.sh
|
source ./config.sh
|
||||||
|
|
||||||
can_sign_windows=0
|
can_sign=0
|
||||||
if [ ! -z "${WINDOWS_SIGN_NAME}" ] && [ ! -z "${WINDOWS_SIGN_URL}" ] && [[ $(type -P "osslsigncode") ]]; then
|
if [ ! -z "${SIGN_KEYSTORE}" ] && [ ! -z "${SIGN_PASSWORD}" ]; then
|
||||||
can_sign_windows=1
|
can_sign=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 binary signing as config.sh does not define the required data."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sign_windows() {
|
sign_windows() {
|
||||||
if [ $can_sign_windows == 0 ]; then
|
if [ $can_sign == 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 -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
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,27 +33,30 @@ sign_macos() {
|
|||||||
|
|
||||||
if [[ "${_is_mono}" == "1" ]]; then
|
if [[ "${_is_mono}" == "1" ]]; then
|
||||||
_appname="Godot_mono.app"
|
_appname="Godot_mono.app"
|
||||||
|
_entitlements=editor_mono.entitlements
|
||||||
_sharpdir="${_appname}/Contents/Resources/GodotSharp"
|
_sharpdir="${_appname}/Contents/Resources/GodotSharp"
|
||||||
_extra_files="${_sharpdir}/Mono/lib/*.dylib ${_sharpdir}/Tools/aot-compilers/*/*"
|
_extra_files="${_sharpdir}/Mono/lib/*.dylib ${_sharpdir}/Tools/aot-compilers/*/*"
|
||||||
else
|
else
|
||||||
_appname="Godot.app"
|
_appname="Godot.app"
|
||||||
|
_entitlements=editor.entitlements
|
||||||
fi
|
fi
|
||||||
|
|
||||||
scp "${_reldir}/${_binname}.zip" "${OSX_HOST}:${_osx_tmpdir}"
|
scp "${_reldir}/${_binname}.zip" "${OSX_HOST}:${_osx_tmpdir}"
|
||||||
scp "${basedir}/git/misc/dist/osx/editor.entitlements" "${OSX_HOST}:${_osx_tmpdir}"
|
scp "${basedir}/build-macosx/${_entitlements}" "${OSX_HOST}:${_osx_tmpdir}"
|
||||||
ssh "${OSX_HOST}" "
|
ssh "${OSX_HOST}" "
|
||||||
cd ${_osx_tmpdir} && \
|
cd ${_osx_tmpdir} && \
|
||||||
unzip ${_binname}.zip && \
|
unzip ${_binname}.zip && \
|
||||||
codesign --force --timestamp \
|
codesign --force --timestamp \
|
||||||
--options=runtime --entitlements editor.entitlements \
|
--options=runtime --entitlements ${_entitlements} \
|
||||||
-s ${OSX_KEY_ID} -v ${_extra_files} ${_appname} && \
|
-s ${OSX_KEY_ID} -v ${_extra_files} ${_appname} && \
|
||||||
zip -r ${_binname}_signed.zip ${_appname}"
|
zip -r ${_binname}_signed.zip ${_appname}"
|
||||||
|
|
||||||
_request_uuid=$(ssh "${OSX_HOST}" "xcrun notarytool submit ${_osx_tmpdir}/${_binname}_signed.zip --team-id \"${APPLE_TEAM}\" --apple-id \"${APPLE_ID}\" --password \"${APPLE_ID_PASSWORD}\" --no-progress --output-format json")
|
_request_uuid=$(ssh "${OSX_HOST}" "xcrun altool --notarize-app --primary-bundle-id \"${OSX_BUNDLE_ID}\" --username \"${APPLE_ID}\" --password \"${APPLE_ID_PASSWORD}\" --file ${_osx_tmpdir}/${_binname}_signed.zip")
|
||||||
_request_uuid=$(echo ${_request_uuid} | sed -e 's/.*"id":"\([^"]*\)".*/\1/')
|
_request_uuid=$(echo ${_request_uuid} | sed -e 's/.*RequestUUID = //')
|
||||||
if ! ssh "${OSX_HOST}" "xcrun notarytool wait ${_request_uuid} --team-id \"${APPLE_TEAM}\" --apple-id \"${APPLE_ID}\" --password \"${APPLE_ID_PASSWORD}\" | grep -q status:\ Accepted"; then
|
ssh "${OSX_HOST}" "while xcrun altool --notarization-info ${_request_uuid} -u \"${APPLE_ID}\" -p \"${APPLE_ID_PASSWORD}\" | grep -q Status:\ in\ progress; do echo Waiting on Apple notarization...; sleep 30s; done"
|
||||||
|
if ! ssh "${OSX_HOST}" "xcrun altool --notarization-info ${_request_uuid} -u \"${APPLE_ID}\" -p \"${APPLE_ID_PASSWORD}\" | grep -q Status:\ success"; then
|
||||||
echo "Notarization failed."
|
echo "Notarization failed."
|
||||||
_notarization_log=$(ssh "${OSX_HOST}" "xcrun notarytool log ${_request_uuid} --team-id \"${APPLE_TEAM}\" --apple-id \"${APPLE_ID}\" --password \"${APPLE_ID_PASSWORD}\"")
|
_notarization_log=$(ssh "${OSX_HOST}" "xcrun altool --notarization-info ${_request_uuid} -u \"${APPLE_ID}\" -p \"${APPLE_ID_PASSWORD}\"")
|
||||||
echo "${_notarization_log}"
|
echo "${_notarization_log}"
|
||||||
ssh "${OSX_HOST}" "rm -rf ${_osx_tmpdir}"
|
ssh "${OSX_HOST}" "rm -rf ${_osx_tmpdir}"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -130,13 +130,10 @@ done
|
|||||||
if [ -z "${godot_version}" -o -z "${templates_version}" ]; then
|
if [ -z "${godot_version}" -o -z "${templates_version}" ]; then
|
||||||
echo "Mandatory argument -v or -t missing."
|
echo "Mandatory argument -v or -t missing."
|
||||||
exit 1
|
exit 1
|
||||||
elif [[ "{$templates_version}" == *"-"* ]]; then
|
|
||||||
echo "Templates version (-t) shouldn't contain '-'. It should use a dot to separate version from status."
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export basedir=$(pwd)
|
export basedir=$(pwd)
|
||||||
export webdir="${basedir}/web/${templates_version}"
|
export webdir="${basedir}/web/${godot_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"
|
||||||
@@ -173,21 +170,13 @@ if [ "${build_classical}" == "1" ]; then
|
|||||||
# Editor
|
# Editor
|
||||||
binname="${godot_basename}_x11.64"
|
binname="${godot_basename}_x11.64"
|
||||||
cp out/linux/x64/tools/godot.x11.opt.tools.64 ${binname}
|
cp out/linux/x64/tools/godot.x11.opt.tools.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}_x11.32"
|
binname="${godot_basename}_x11.32"
|
||||||
cp out/linux/x86/tools/godot.x11.opt.tools.32 ${binname}
|
cp out/linux/x86/tools/godot.x11.opt.tools.32 ${binname}
|
||||||
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
strip ${binname}
|
||||||
rm ${binname}
|
|
||||||
|
|
||||||
binname="${godot_basename}_linux.arm64"
|
|
||||||
cp out/linux/arm64/tools/godot.x11.opt.tools.arm64 ${binname}
|
|
||||||
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
|
||||||
rm ${binname}
|
|
||||||
|
|
||||||
binname="${godot_basename}_linux.arm32"
|
|
||||||
cp out/linux/arm/tools/godot.x11.opt.tools.arm ${binname}
|
|
||||||
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
||||||
rm ${binname}
|
rm ${binname}
|
||||||
|
|
||||||
@@ -196,35 +185,24 @@ if [ "${build_classical}" == "1" ]; then
|
|||||||
cp out/linux/x64/templates/godot.x11.opt.debug.64 ${templatesdir}/linux_x11_64_debug
|
cp out/linux/x64/templates/godot.x11.opt.debug.64 ${templatesdir}/linux_x11_64_debug
|
||||||
cp out/linux/x86/templates/godot.x11.opt.32 ${templatesdir}/linux_x11_32_release
|
cp out/linux/x86/templates/godot.x11.opt.32 ${templatesdir}/linux_x11_32_release
|
||||||
cp out/linux/x86/templates/godot.x11.opt.debug.32 ${templatesdir}/linux_x11_32_debug
|
cp out/linux/x86/templates/godot.x11.opt.debug.32 ${templatesdir}/linux_x11_32_debug
|
||||||
cp out/linux/arm64/templates/godot.x11.opt.arm64 ${templatesdir}/linux_x11_arm64_release
|
strip ${templatesdir}/linux_x11_*
|
||||||
cp out/linux/arm64/templates/godot.x11.opt.debug.arm64 ${templatesdir}/linux_x11_arm64_debug
|
|
||||||
cp out/linux/arm/templates/godot.x11.opt.arm ${templatesdir}/linux_x11_arm32_release
|
|
||||||
cp out/linux/arm/templates/godot.x11.opt.debug.arm ${templatesdir}/linux_x11_arm32_debug
|
|
||||||
|
|
||||||
## Windows (Classical) ##
|
## Windows (Classical) ##
|
||||||
|
|
||||||
# Editor
|
# Editor
|
||||||
binname="${godot_basename}_win64.exe"
|
binname="${godot_basename}_win64.exe"
|
||||||
batname="${godot_basename}_win64_console.cmd"
|
|
||||||
cp out/windows/x64/tools/godot.windows.opt.tools.64.exe ${binname}
|
cp out/windows/x64/tools/godot.windows.opt.tools.64.exe ${binname}
|
||||||
strip ${binname}
|
strip ${binname}
|
||||||
sign_windows ${binname}
|
sign_windows ${binname}
|
||||||
echo "@echo off" > ${batname}
|
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
||||||
echo ${binname} >> ${batname}
|
rm ${binname}
|
||||||
echo "pause > nul" >> ${batname}
|
|
||||||
zip -q -9 "${reldir}/${binname}.zip" ${binname} ${batname}
|
|
||||||
rm ${binname} ${batname}
|
|
||||||
|
|
||||||
binname="${godot_basename}_win32.exe"
|
binname="${godot_basename}_win32.exe"
|
||||||
batname="${godot_basename}_win32_console.cmd"
|
|
||||||
cp out/windows/x86/tools/godot.windows.opt.tools.32.exe ${binname}
|
cp out/windows/x86/tools/godot.windows.opt.tools.32.exe ${binname}
|
||||||
strip ${binname}
|
strip ${binname}
|
||||||
sign_windows ${binname}
|
sign_windows ${binname}
|
||||||
echo "@echo off" > ${batname}
|
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
||||||
echo ${binname} >> ${batname}
|
rm ${binname}
|
||||||
echo "pause > nul" >> ${batname}
|
|
||||||
zip -q -9 "${reldir}/${binname}.zip" ${binname} ${batname}
|
|
||||||
rm ${binname} ${batname}
|
|
||||||
|
|
||||||
# Templates
|
# Templates
|
||||||
cp out/windows/x64/templates/godot.windows.opt.64.exe ${templatesdir}/windows_64_release.exe
|
cp out/windows/x64/templates/godot.windows.opt.64.exe ${templatesdir}/windows_64_release.exe
|
||||||
@@ -297,12 +275,6 @@ if [ "${build_classical}" == "1" ]; then
|
|||||||
# Lib for direct download
|
# Lib for direct download
|
||||||
cp out/android/templates/godot-lib.release.aar ${reldir}/godot-lib.${templates_version}.release.aar
|
cp out/android/templates/godot-lib.release.aar ${reldir}/godot-lib.${templates_version}.release.aar
|
||||||
|
|
||||||
# Editor
|
|
||||||
binname="${godot_basename}_android_editor.apk"
|
|
||||||
cp out/android/tools/android_editor.apk ${reldir}/${binname}
|
|
||||||
binname="${godot_basename}_android_editor.aab"
|
|
||||||
cp out/android/tools/android_editor.aab ${reldir}/${binname}
|
|
||||||
|
|
||||||
# Templates
|
# Templates
|
||||||
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}/
|
||||||
@@ -311,10 +283,9 @@ if [ "${build_classical}" == "1" ]; then
|
|||||||
|
|
||||||
rm -rf ios_xcode
|
rm -rf ios_xcode
|
||||||
cp -r git/misc/dist/ios_xcode ios_xcode
|
cp -r git/misc/dist/ios_xcode ios_xcode
|
||||||
cp out/ios/templates/libgodot.iphone.simulator.a ios_xcode/libgodot.iphone.release.xcframework/ios-arm64_x86_64-simulator/libgodot.a
|
cp out/ios/templates/libgodot.iphone.opt.fat ios_xcode/libgodot.iphone.release.fat.a
|
||||||
cp out/ios/templates/libgodot.iphone.debug.simulator.a ios_xcode/libgodot.iphone.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a
|
cp out/ios/templates/libgodot.iphone.opt.debug.fat ios_xcode/libgodot.iphone.debug.fat.a
|
||||||
cp out/ios/templates/libgodot.iphone.a ios_xcode/libgodot.iphone.release.xcframework/ios-arm64/libgodot.a
|
chmod +x ios_xcode/libgodot.iphone.*
|
||||||
cp out/ios/templates/libgodot.iphone.debug.a ios_xcode/libgodot.iphone.debug.xcframework/ios-arm64/libgodot.a
|
|
||||||
cd ios_xcode
|
cd ios_xcode
|
||||||
zip -q -9 -r "${templatesdir}/iphone.zip" *
|
zip -q -9 -r "${templatesdir}/iphone.zip" *
|
||||||
cd ..
|
cd ..
|
||||||
@@ -322,47 +293,41 @@ if [ "${build_classical}" == "1" ]; then
|
|||||||
|
|
||||||
## UWP (Classical) ##
|
## UWP (Classical) ##
|
||||||
|
|
||||||
if [ -d "out/uwp" ]; then
|
if [ ! -d "deps/angle" ]; then
|
||||||
# UWP is now optional as it's tricky to get a reproducible build container for it.
|
echo "Downloading ANGLE binaries from https://github.com/GodotBuilder/godot-builds/releases/tag/_tools"
|
||||||
|
mkdir -p deps && cd deps
|
||||||
if [ ! -d "deps/angle-uwp" ]; then
|
curl -LO https://github.com/GodotBuilder/godot-builds/releases/download/_tools/angle.7z
|
||||||
echo "Downloading ANGLE binaries from https://github.com/godotengine/godot-build-scripts/releases/tag/_deps/"
|
7z x angle.7z && rm -f angle.7z
|
||||||
mkdir -p deps && cd deps
|
cd ..
|
||||||
curl -L -o angle-uwp.7z https://github.com/godotengine/godot-build-scripts/releases/download/_deps/angle-uwp-2.1.13.7z
|
|
||||||
7z x angle-uwp.7z && rm -f angle-uwp.7z
|
|
||||||
cd ..
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -rf uwp_template_*
|
|
||||||
for arch in ARM Win32 x64; do
|
|
||||||
cp -r git/misc/dist/uwp_template uwp_template_${arch}
|
|
||||||
cp deps/angle-uwp/${arch}/libEGL.dll \
|
|
||||||
deps/angle-uwp/${arch}/libGLESv2.dll \
|
|
||||||
uwp_template_${arch}/
|
|
||||||
cp -r uwp_template_${arch} uwp_template_${arch}_debug
|
|
||||||
done
|
|
||||||
|
|
||||||
cp out/uwp/arm/godot.uwp.opt.32.arm.exe uwp_template_ARM/godot.uwp.exe
|
|
||||||
cp out/uwp/arm/godot.uwp.opt.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.opt.32.x86.exe uwp_template_Win32/godot.uwp.exe
|
|
||||||
cp out/uwp/x86/godot.uwp.opt.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.opt.64.x64.exe uwp_template_x64/godot.uwp.exe
|
|
||||||
cp out/uwp/x64/godot.uwp.opt.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*
|
|
||||||
else
|
|
||||||
echo "Skipping UWP templates as no builds were found."
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
rm -rf uwp_template_*
|
||||||
|
for arch in ARM Win32 x64; do
|
||||||
|
cp -r git/misc/dist/uwp_template uwp_template_${arch}
|
||||||
|
cp deps/angle/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.opt.32.arm.exe uwp_template_ARM/godot.uwp.exe
|
||||||
|
cp out/uwp/arm/godot.uwp.opt.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.opt.32.x86.exe uwp_template_Win32/godot.uwp.exe
|
||||||
|
cp out/uwp/x86/godot.uwp.opt.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.opt.64.x64.exe uwp_template_x64/godot.uwp.exe
|
||||||
|
cp out/uwp/x64/godot.uwp.opt.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) ##
|
||||||
|
|
||||||
echo "${templates_version}" > ${templatesdir}/version.txt
|
echo "${templates_version}" > ${templatesdir}/version.txt
|
||||||
@@ -390,6 +355,7 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
binbasename="${godot_basename}_mono_x11"
|
binbasename="${godot_basename}_mono_x11"
|
||||||
mkdir -p ${binbasename}_64
|
mkdir -p ${binbasename}_64
|
||||||
cp out/linux/x64/tools-mono/godot.x11.opt.tools.64.mono ${binbasename}_64/${binbasename}.64
|
cp out/linux/x64/tools-mono/godot.x11.opt.tools.64.mono ${binbasename}_64/${binbasename}.64
|
||||||
|
strip ${binbasename}_64/${binbasename}.64
|
||||||
cp -rp out/linux/x64/tools-mono/GodotSharp ${binbasename}_64/
|
cp -rp out/linux/x64/tools-mono/GodotSharp ${binbasename}_64/
|
||||||
cp -rp out/aot-compilers ${binbasename}_64/GodotSharp/Tools/
|
cp -rp out/aot-compilers ${binbasename}_64/GodotSharp/Tools/
|
||||||
zip -r -q -9 "${reldir_mono}/${binbasename}_64.zip" ${binbasename}_64
|
zip -r -q -9 "${reldir_mono}/${binbasename}_64.zip" ${binbasename}_64
|
||||||
@@ -398,6 +364,7 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
binbasename="${godot_basename}_mono_x11"
|
binbasename="${godot_basename}_mono_x11"
|
||||||
mkdir -p ${binbasename}_32
|
mkdir -p ${binbasename}_32
|
||||||
cp out/linux/x86/tools-mono/godot.x11.opt.tools.32.mono ${binbasename}_32/${binbasename}.32
|
cp out/linux/x86/tools-mono/godot.x11.opt.tools.32.mono ${binbasename}_32/${binbasename}.32
|
||||||
|
strip ${binbasename}_32/${binbasename}.32
|
||||||
cp -rp out/linux/x86/tools-mono/GodotSharp/ ${binbasename}_32/
|
cp -rp out/linux/x86/tools-mono/GodotSharp/ ${binbasename}_32/
|
||||||
cp -rp out/aot-compilers ${binbasename}_32/GodotSharp/Tools/
|
cp -rp out/aot-compilers ${binbasename}_32/GodotSharp/Tools/
|
||||||
zip -r -q -9 "${reldir_mono}/${binbasename}_32.zip" ${binbasename}_32
|
zip -r -q -9 "${reldir_mono}/${binbasename}_32.zip" ${binbasename}_32
|
||||||
@@ -410,6 +377,7 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
cp -rp out/linux/x86/templates-mono/data.mono.x11.32.* ${templatesdir_mono}/
|
cp -rp out/linux/x86/templates-mono/data.mono.x11.32.* ${templatesdir_mono}/
|
||||||
cp out/linux/x86/templates-mono/godot.x11.opt.debug.32.mono ${templatesdir_mono}/linux_x11_32_debug
|
cp out/linux/x86/templates-mono/godot.x11.opt.debug.32.mono ${templatesdir_mono}/linux_x11_32_debug
|
||||||
cp out/linux/x86/templates-mono/godot.x11.opt.32.mono ${templatesdir_mono}/linux_x11_32_release
|
cp out/linux/x86/templates-mono/godot.x11.opt.32.mono ${templatesdir_mono}/linux_x11_32_release
|
||||||
|
strip ${templatesdir_mono}/linux_x11*
|
||||||
|
|
||||||
mkdir -p ${templatesdir_mono}/bcl
|
mkdir -p ${templatesdir_mono}/bcl
|
||||||
cp -r out/linux/x64/tools-mono/GodotSharp/Mono/lib/mono/4.5/ ${templatesdir_mono}/bcl/net_4_x
|
cp -r out/linux/x64/tools-mono/GodotSharp/Mono/lib/mono/4.5/ ${templatesdir_mono}/bcl/net_4_x
|
||||||
@@ -418,32 +386,22 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
|
|
||||||
# Editor
|
# Editor
|
||||||
binname="${godot_basename}_mono_win64"
|
binname="${godot_basename}_mono_win64"
|
||||||
batname="${godot_basename}_mono_win64_console.cmd"
|
|
||||||
mkdir -p ${binname}
|
mkdir -p ${binname}
|
||||||
cp out/windows/x64/tools-mono/godot.windows.opt.tools.64.mono.exe ${binname}/${binname}.exe
|
cp out/windows/x64/tools-mono/godot.windows.opt.tools.64.mono.exe ${binname}/${binname}.exe
|
||||||
strip ${binname}/${binname}.exe
|
strip ${binname}/${binname}.exe
|
||||||
sign_windows ${binname}/${binname}.exe
|
sign_windows ${binname}/${binname}.exe
|
||||||
cp -rp out/windows/x64/tools-mono/GodotSharp ${binname}/
|
cp -rp out/windows/x64/tools-mono/GodotSharp ${binname}/
|
||||||
cp -rp out/aot-compilers ${binname}/GodotSharp/Tools/
|
cp -rp out/aot-compilers ${binname}/GodotSharp/Tools/
|
||||||
echo "@echo off" > ${batname}
|
|
||||||
echo ${binname}.exe >> ${batname}
|
|
||||||
echo "pause > nul" >> ${batname}
|
|
||||||
mv ${batname} ${binname}/
|
|
||||||
zip -r -q -9 "${reldir_mono}/${binname}.zip" ${binname}
|
zip -r -q -9 "${reldir_mono}/${binname}.zip" ${binname}
|
||||||
rm -rf ${binname}
|
rm -rf ${binname}
|
||||||
|
|
||||||
binname="${godot_basename}_mono_win32"
|
binname="${godot_basename}_mono_win32"
|
||||||
batname="${godot_basename}_mono_win32_console.cmd"
|
|
||||||
mkdir -p ${binname}
|
mkdir -p ${binname}
|
||||||
cp out/windows/x86/tools-mono/godot.windows.opt.tools.32.mono.exe ${binname}/${binname}.exe
|
cp out/windows/x86/tools-mono/godot.windows.opt.tools.32.mono.exe ${binname}/${binname}.exe
|
||||||
strip ${binname}/${binname}.exe
|
strip ${binname}/${binname}.exe
|
||||||
sign_windows ${binname}/${binname}.exe
|
sign_windows ${binname}/${binname}.exe
|
||||||
cp -rp out/windows/x86/tools-mono/GodotSharp ${binname}/
|
cp -rp out/windows/x86/tools-mono/GodotSharp ${binname}/
|
||||||
cp -rp out/aot-compilers ${binname}/GodotSharp/Tools/
|
cp -rp out/aot-compilers ${binname}/GodotSharp/Tools/
|
||||||
echo "@echo off" > ${batname}
|
|
||||||
echo ${binname}.exe >> ${batname}
|
|
||||||
echo "pause > nul" >> ${batname}
|
|
||||||
mv ${batname} ${binname}/
|
|
||||||
zip -r -q -9 "${reldir_mono}/${binname}.zip" ${binname}
|
zip -r -q -9 "${reldir_mono}/${binname}.zip" ${binname}
|
||||||
rm -rf ${binname}
|
rm -rf ${binname}
|
||||||
|
|
||||||
@@ -462,11 +420,11 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
## OSX (Mono) ##
|
## OSX (Mono) ##
|
||||||
|
|
||||||
# Editor
|
# Editor
|
||||||
binname="${godot_basename}_mono_osx.universal"
|
binname="${godot_basename}_mono_osx.64"
|
||||||
rm -rf Godot_mono.app
|
rm -rf Godot_mono.app
|
||||||
cp -r git/misc/dist/osx_tools.app Godot_mono.app
|
cp -r git/misc/dist/osx_tools.app Godot_mono.app
|
||||||
mkdir -p Godot_mono.app/Contents/{MacOS,Resources}
|
mkdir -p Godot_mono.app/Contents/{MacOS,Resources}
|
||||||
cp out/macosx/tools-mono/godot.osx.opt.tools.universal.mono Godot_mono.app/Contents/MacOS/Godot
|
cp out/macosx/tools-mono/godot.osx.opt.tools.x86_64.mono Godot_mono.app/Contents/MacOS/Godot
|
||||||
cp -rp out/macosx/tools-mono/GodotSharp Godot_mono.app/Contents/Resources/GodotSharp
|
cp -rp out/macosx/tools-mono/GodotSharp Godot_mono.app/Contents/Resources/GodotSharp
|
||||||
cp -rp out/aot-compilers Godot_mono.app/Contents/Resources/GodotSharp/Tools/
|
cp -rp out/aot-compilers Godot_mono.app/Contents/Resources/GodotSharp/Tools/
|
||||||
chmod +x Godot_mono.app/Contents/MacOS/Godot
|
chmod +x Godot_mono.app/Contents/MacOS/Godot
|
||||||
@@ -478,8 +436,8 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
rm -rf osx_template.app
|
rm -rf osx_template.app
|
||||||
cp -r git/misc/dist/osx_template.app .
|
cp -r git/misc/dist/osx_template.app .
|
||||||
mkdir -p osx_template.app/Contents/{MacOS,Resources}
|
mkdir -p osx_template.app/Contents/{MacOS,Resources}
|
||||||
cp out/macosx/templates-mono/godot.osx.opt.debug.universal.mono osx_template.app/Contents/MacOS/godot_osx_debug.64
|
cp out/macosx/templates-mono/godot.osx.opt.debug.x86_64.mono osx_template.app/Contents/MacOS/godot_osx_debug.64
|
||||||
cp out/macosx/templates-mono/godot.osx.opt.universal.mono osx_template.app/Contents/MacOS/godot_osx_release.64
|
cp out/macosx/templates-mono/godot.osx.opt.x86_64.mono osx_template.app/Contents/MacOS/godot_osx_release.64
|
||||||
cp -rp out/macosx/templates-mono/data.mono.osx.64.* osx_template.app/Contents/Resources/
|
cp -rp out/macosx/templates-mono/data.mono.osx.64.* osx_template.app/Contents/Resources/
|
||||||
chmod +x osx_template.app/Contents/MacOS/godot_osx*
|
chmod +x osx_template.app/Contents/MacOS/godot_osx*
|
||||||
zip -q -9 -r "${templatesdir_mono}/osx.zip" osx_template.app
|
zip -q -9 -r "${templatesdir_mono}/osx.zip" osx_template.app
|
||||||
@@ -521,10 +479,6 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
# Lib for direct download
|
# Lib for direct download
|
||||||
cp out/android/templates-mono/godot-lib.release.aar ${reldir_mono}/godot-lib.${templates_version}.mono.release.aar
|
cp out/android/templates-mono/godot-lib.release.aar ${reldir_mono}/godot-lib.${templates_version}.mono.release.aar
|
||||||
|
|
||||||
# Editor
|
|
||||||
#binname="${godot_basename}_mono_android_editor.apk"
|
|
||||||
#cp out/android/tools-mono/android_editor.apk ${reldir_mono}/${binname}
|
|
||||||
|
|
||||||
# Templates
|
# Templates
|
||||||
cp out/android/templates-mono/*.apk ${templatesdir_mono}/
|
cp out/android/templates-mono/*.apk ${templatesdir_mono}/
|
||||||
cp out/android/templates-mono/android_source.zip ${templatesdir_mono}/
|
cp out/android/templates-mono/android_source.zip ${templatesdir_mono}/
|
||||||
@@ -537,10 +491,9 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
|
|
||||||
rm -rf ios_xcode
|
rm -rf ios_xcode
|
||||||
cp -r git/misc/dist/ios_xcode ios_xcode
|
cp -r git/misc/dist/ios_xcode ios_xcode
|
||||||
cp out/ios/templates-mono/libgodot.iphone.simulator.a ios_xcode/libgodot.iphone.release.xcframework/ios-arm64_x86_64-simulator/libgodot.a
|
cp out/ios/templates-mono/libgodot.iphone.opt.fat ios_xcode/libgodot.iphone.release.fat.a
|
||||||
cp out/ios/templates-mono/libgodot.iphone.debug.simulator.a ios_xcode/libgodot.iphone.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a
|
cp out/ios/templates-mono/libgodot.iphone.opt.debug.fat ios_xcode/libgodot.iphone.debug.fat.a
|
||||||
cp out/ios/templates-mono/libgodot.iphone.a ios_xcode/libgodot.iphone.release.xcframework/ios-arm64/libgodot.a
|
chmod +x ios_xcode/libgodot.iphone.*
|
||||||
cp out/ios/templates-mono/libgodot.iphone.debug.a ios_xcode/libgodot.iphone.debug.xcframework/ios-arm64/libgodot.a
|
|
||||||
cd ios_xcode
|
cd ios_xcode
|
||||||
zip -q -9 -r "${templatesdir_mono}/iphone.zip" *
|
zip -q -9 -r "${templatesdir_mono}/iphone.zip" *
|
||||||
cd ..
|
cd ..
|
||||||
@@ -548,7 +501,8 @@ if [ "${build_mono}" == "1" ]; then
|
|||||||
|
|
||||||
mkdir -p ${templatesdir_mono}/bcl
|
mkdir -p ${templatesdir_mono}/bcl
|
||||||
cp -r out/ios/templates-mono/bcl/monotouch* ${templatesdir_mono}/bcl/
|
cp -r out/ios/templates-mono/bcl/monotouch* ${templatesdir_mono}/bcl/
|
||||||
cp -r out/ios/templates-mono/iphone-mono-libs ${templatesdir_mono}
|
|
||||||
|
cp -r out/ios/templates-mono/iphone-mono-libs ${templatesdir_mono}/
|
||||||
|
|
||||||
## UWP (Mono) ##
|
## UWP (Mono) ##
|
||||||
|
|
||||||
|
|||||||
@@ -6,9 +6,10 @@ set -e
|
|||||||
|
|
||||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
||||||
export OPTIONS="production=yes"
|
export OPTIONS="production=yes"
|
||||||
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes mono_prefix=/root/mono-installs/desktop-linux-x86_64-release"
|
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes"
|
||||||
export TERM=xterm
|
export TERM=xterm
|
||||||
export PATH="${GODOT_SDK_LINUX_X86_64}/bin:${BASE_PATH}"
|
export CC="gcc-9"
|
||||||
|
export CXX="g++-9"
|
||||||
|
|
||||||
rm -rf godot
|
rm -rf godot
|
||||||
mkdir godot
|
mkdir godot
|
||||||
@@ -20,14 +21,15 @@ tar xf /root/godot.tar.gz --strip-components=1
|
|||||||
if [ "${CLASSICAL}" == "1" ]; then
|
if [ "${CLASSICAL}" == "1" ]; then
|
||||||
echo "Starting classical build for Server..."
|
echo "Starting classical build for Server..."
|
||||||
|
|
||||||
$SCONS platform=server $OPTIONS tools=yes target=release_debug
|
$SCONS platform=server CC=$CC CXX=$CXX $OPTIONS tools=yes target=release_debug
|
||||||
mkdir -p /root/out/x64/tools
|
mkdir -p /root/out/tools
|
||||||
cp -rvp bin/* /root/out/x64/tools
|
cp -rvp bin/* /root/out/tools
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
|
|
||||||
$SCONS platform=server $OPTIONS tools=no target=release
|
#$SCONS platform=server CC=$CC CXX=$CXX $OPTIONS tools=no target=release_debug
|
||||||
mkdir -p /root/out/x64/templates
|
$SCONS platform=server CC=$CC CXX=$CXX $OPTIONS tools=no target=release
|
||||||
cp -rvp bin/* /root/out/x64/templates
|
mkdir -p /root/out/templates
|
||||||
|
cp -rvp bin/* /root/out/templates
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -40,14 +42,19 @@ if [ "${MONO}" == "1" ]; then
|
|||||||
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/
|
||||||
cp -r /root/mono-glue/GodotSharp/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
cp -r /root/mono-glue/GodotSharp/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
||||||
|
|
||||||
$SCONS platform=server $OPTIONS $OPTIONS_MONO tools=yes target=release_debug copy_mono_root=yes
|
# Workaround for MSBuild segfault on Ubuntu containers, we build the CIL on Fedora and copy here.
|
||||||
mkdir -p /root/out/x64/tools-mono
|
mkdir -p bin
|
||||||
cp -rvp bin/* /root/out/x64/tools-mono
|
cp -r /root/mono-glue/cil/GodotSharp bin/
|
||||||
|
|
||||||
|
$SCONS platform=server CC=$CC CXX=$CXX $OPTIONS $OPTIONS_MONO tools=yes target=release_debug copy_mono_root=yes build_cil=no
|
||||||
|
mkdir -p /root/out/tools-mono
|
||||||
|
cp -rvp bin/* /root/out/tools-mono
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
|
|
||||||
$SCONS platform=server $OPTIONS $OPTIONS_MONO tools=no target=release
|
#$SCONS platform=server CC=$CC CXX=$CXX $OPTIONS $OPTIONS_MONO tools=no target=release_debug
|
||||||
mkdir -p /root/out/x64/templates-mono
|
$SCONS platform=server CC=$CC CXX=$CXX $OPTIONS $OPTIONS_MONO tools=no target=release
|
||||||
cp -rvp bin/* /root/out/x64/templates-mono
|
mkdir -p /root/out/templates-mono
|
||||||
|
cp -rvp bin/* /root/out/templates-mono
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ set -e
|
|||||||
|
|
||||||
# Config
|
# Config
|
||||||
|
|
||||||
export SCONS="call scons -j8 verbose=yes warnings=no progress=no"
|
export SCONS="call scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
||||||
export OPTIONS="production=yes"
|
export OPTIONS="production=yes"
|
||||||
export BUILD_ARCHES="x86 x64 arm"
|
export BUILD_ARCHES="x86 x64 arm"
|
||||||
export ANGLE_SRC_PATH='c:\angle'
|
export ANGLE_SRC_PATH='c:\angle'
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ set -e
|
|||||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
||||||
export OPTIONS="production=yes"
|
export OPTIONS="production=yes"
|
||||||
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes"
|
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes"
|
||||||
export MONO_PREFIX_X86_64="/root/mono-installs/desktop-windows-x86_64-release"
|
|
||||||
export MONO_PREFIX_X86="/root/mono-installs/desktop-windows-x86-release"
|
|
||||||
export TERM=xterm
|
export TERM=xterm
|
||||||
|
export MONO32_PREFIX=/root/dependencies/mono-32
|
||||||
|
export MONO64_PREFIX=/root/dependencies/mono-64
|
||||||
|
|
||||||
rm -rf godot
|
rm -rf godot
|
||||||
mkdir godot
|
mkdir godot
|
||||||
@@ -53,28 +53,24 @@ if [ "${MONO}" == "1" ]; then
|
|||||||
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/
|
||||||
cp -r /root/mono-glue/GodotSharp/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
cp -r /root/mono-glue/GodotSharp/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
||||||
|
|
||||||
export OPTIONS_MONO_PREFIX="${OPTIONS} ${OPTIONS_MONO} mono_prefix=${MONO_PREFIX_X86_64}"
|
$SCONS platform=windows bits=64 $OPTIONS $OPTIONS_MONO mono_prefix=$MONO64_PREFIX tools=yes target=release_debug copy_mono_root=yes
|
||||||
|
|
||||||
$SCONS platform=windows bits=64 $OPTIONS_MONO_PREFIX tools=yes target=release_debug copy_mono_root=yes
|
|
||||||
mkdir -p /root/out/x64/tools-mono
|
mkdir -p /root/out/x64/tools-mono
|
||||||
cp -rvp bin/* /root/out/x64/tools-mono
|
cp -rvp bin/* /root/out/x64/tools-mono
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
|
|
||||||
$SCONS platform=windows bits=64 $OPTIONS_MONO_PREFIX tools=no target=release_debug
|
$SCONS platform=windows bits=64 $OPTIONS $OPTIONS_MONO mono_prefix=$MONO64_PREFIX tools=no target=release_debug
|
||||||
$SCONS platform=windows bits=64 $OPTIONS_MONO_PREFIX tools=no target=release
|
$SCONS platform=windows bits=64 $OPTIONS $OPTIONS_MONO mono_prefix=$MONO64_PREFIX tools=no target=release
|
||||||
mkdir -p /root/out/x64/templates-mono
|
mkdir -p /root/out/x64/templates-mono
|
||||||
cp -rvp bin/* /root/out/x64/templates-mono
|
cp -rvp bin/* /root/out/x64/templates-mono
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
|
|
||||||
export OPTIONS_MONO_PREFIX="${OPTIONS} ${OPTIONS_MONO} mono_prefix=${MONO_PREFIX_X86}"
|
$SCONS platform=windows bits=32 $OPTIONS $OPTIONS_MONO mono_prefix=$MONO32_PREFIX tools=yes target=release_debug copy_mono_root=yes
|
||||||
|
|
||||||
$SCONS platform=windows bits=32 $OPTIONS_MONO_PREFIX tools=yes target=release_debug copy_mono_root=yes
|
|
||||||
mkdir -p /root/out/x86/tools-mono
|
mkdir -p /root/out/x86/tools-mono
|
||||||
cp -rvp bin/* /root/out/x86/tools-mono
|
cp -rvp bin/* /root/out/x86/tools-mono
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
|
|
||||||
$SCONS platform=windows bits=32 $OPTIONS_MONO_PREFIX tools=no target=release_debug
|
$SCONS platform=windows bits=32 $OPTIONS $OPTIONS_MONO mono_prefix=$MONO32_PREFIX tools=no target=release_debug
|
||||||
$SCONS platform=windows bits=32 $OPTIONS_MONO_PREFIX tools=no target=release
|
$SCONS platform=windows bits=32 $OPTIONS $OPTIONS_MONO mono_prefix=$MONO32_PREFIX tools=no target=release
|
||||||
mkdir -p /root/out/x86/templates-mono
|
mkdir -p /root/out/x86/templates-mono
|
||||||
cp -rvp bin/* /root/out/x86/templates-mono
|
cp -rvp bin/* /root/out/x86/templates-mono
|
||||||
rm -rf bin
|
rm -rf bin
|
||||||
|
|||||||
78
build.sh
78
build.sh
@@ -4,13 +4,6 @@ set -e
|
|||||||
|
|
||||||
OPTIND=1
|
OPTIND=1
|
||||||
|
|
||||||
export basedir="$(pwd)"
|
|
||||||
mkdir -p ${basedir}/out
|
|
||||||
mkdir -p ${basedir}/out/logs
|
|
||||||
|
|
||||||
# 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.
|
||||||
@@ -38,9 +31,8 @@ build_mono=1
|
|||||||
force_download=0
|
force_download=0
|
||||||
skip_download=1
|
skip_download=1
|
||||||
skip_git_checkout=0
|
skip_git_checkout=0
|
||||||
build_uwp=0
|
|
||||||
|
|
||||||
while getopts "h?r:u:p:v:g:b:fscw" opt; do
|
while getopts "h?r:u:p:v:g:b:fsc" opt; do
|
||||||
case "$opt" in
|
case "$opt" in
|
||||||
h|\?)
|
h|\?)
|
||||||
echo "Usage: $0 [OPTIONS...]"
|
echo "Usage: $0 [OPTIONS...]"
|
||||||
@@ -54,7 +46,6 @@ while getopts "h?r:u:p:v:g:b:fscw" opt; do
|
|||||||
echo " -f force redownload of all images"
|
echo " -f force redownload of all images"
|
||||||
echo " -s skip downloading"
|
echo " -s skip downloading"
|
||||||
echo " -c skip checkout"
|
echo " -c skip checkout"
|
||||||
echo " -w build UWP templates"
|
|
||||||
echo
|
echo
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
@@ -89,15 +80,22 @@ while getopts "h?r:u:p:v:g:b:fscw" opt; do
|
|||||||
c)
|
c)
|
||||||
skip_git_checkout=1
|
skip_git_checkout=1
|
||||||
;;
|
;;
|
||||||
w)
|
|
||||||
build_uwp=1
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
export podman=${PODMAN}
|
export podman=none
|
||||||
|
if which podman > /dev/null; then
|
||||||
|
export podman=podman
|
||||||
|
elif which docker > /dev/null; then
|
||||||
|
export podman=docker
|
||||||
|
fi
|
||||||
|
|
||||||
if [ $UID != 0 ] && grep -qv sudo <<< "${podman}"; then
|
if [ "${podman}" == "none" ]; then
|
||||||
|
echo "Either podman or docker needs to be installed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $UID != 0 ]; then
|
||||||
echo "WARNING: Running as non-root may cause problems for the uwp build"
|
echo "WARNING: Running as non-root may cause problems for the uwp build"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -124,7 +122,7 @@ fi
|
|||||||
|
|
||||||
if [ $skip_download == 0 ]; then
|
if [ $skip_download == 0 ]; then
|
||||||
echo "Fetching images"
|
echo "Fetching images"
|
||||||
for image in mono-glue windows linux javascript; do
|
for image in mono-glue windows ubuntu-64 ubuntu-32 javascript; do
|
||||||
if [ ${force_download} == 1 ] || ! ${podman} image exists godot/$image; then
|
if [ ${force_download} == 1 ] || ! ${podman} image exists godot/$image; then
|
||||||
if ! ${podman} pull ${registry}/godot/${image}; then
|
if ! ${podman} pull ${registry}/godot/${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"
|
||||||
@@ -147,18 +145,6 @@ if [ $skip_download == 0 ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Keystore for Android editor signing
|
|
||||||
# Optional - the config.sh will be copied but if it's not filled in,
|
|
||||||
# it will do an unsigned build.
|
|
||||||
if [ ! -d "deps/keystore" ]; then
|
|
||||||
mkdir -p deps/keystore
|
|
||||||
cp config.sh deps/keystore/
|
|
||||||
if [ ! -z "$GODOT_ANDROID_SIGN_KEYSTORE" ]; then
|
|
||||||
cp "$GODOT_ANDROID_SIGN_KEYSTORE" deps/keystore/
|
|
||||||
sed -i deps/keystore/config.sh -e "s@$GODOT_ANDROID_SIGN_KEYSTORE@/root/keystore/$GODOT_ANDROID_SIGN_KEYSTORE@"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${skip_git_checkout}" == 0 ]; then
|
if [ "${skip_git_checkout}" == 0 ]; then
|
||||||
git clone https://github.com/godotengine/godot git || /bin/true
|
git clone https://github.com/godotengine/godot git || /bin/true
|
||||||
pushd git
|
pushd git
|
||||||
@@ -186,12 +172,17 @@ 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)"
|
||||||
export img_version=$IMAGE_VERSION
|
mkdir -p ${basedir}/out
|
||||||
|
mkdir -p ${basedir}/out/logs
|
||||||
|
|
||||||
|
export podman_run="${podman} run -it --rm --env BUILD_NAME --env GODOT_VERSION_STATUS --env NUM_CORES --env CLASSICAL=${build_classical} --env MONO=${build_mono} -v ${basedir}/godot-${godot_version}.tar.gz:/root/godot.tar.gz -v ${basedir}/mono-glue:/root/mono-glue -w /root/"
|
||||||
|
export img_version=3.x-mono-6.12.0.122
|
||||||
|
|
||||||
# Get AOT compilers from their containers.
|
# Get AOT compilers from their containers.
|
||||||
mkdir -p ${basedir}/out/aot-compilers
|
mkdir -p ${basedir}/out/aot-compilers
|
||||||
${podman} run -it --rm -w /root -v ${basedir}/out/aot-compilers:/root/out localhost/godot-ios:${img_version} bash -c "cp -r /root/aot-compilers/* /root/out && chmod +x /root/out/*/*"
|
${podman} run -it --rm -w /root -v ${basedir}/out/aot-compilers:/root/out localhost/godot-ios:${img_version} bash -c "cp -r /root/aot-compilers/* /root/out"
|
||||||
|
chmod +x ${basedir}/out/aot-compilers/*/*
|
||||||
|
|
||||||
mkdir -p ${basedir}/mono-glue
|
mkdir -p ${basedir}/mono-glue
|
||||||
${podman_run} -v ${basedir}/build-mono-glue:/root/build localhost/godot-mono-glue:${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-mono-glue:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/mono-glue
|
||||||
@@ -199,8 +190,11 @@ ${podman_run} -v ${basedir}/build-mono-glue:/root/build localhost/godot-mono-glu
|
|||||||
mkdir -p ${basedir}/out/windows
|
mkdir -p ${basedir}/out/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
|
${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/x64
|
||||||
${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
|
${podman_run} -v ${basedir}/build-linux:/root/build -v ${basedir}/out/linux/x64:/root/out localhost/godot-ubuntu-64:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/linux64
|
||||||
|
|
||||||
|
mkdir -p ${basedir}/out/linux/x86
|
||||||
|
${podman_run} -v ${basedir}/build-linux:/root/build -v ${basedir}/out/linux/x86:/root/out localhost/godot-ubuntu-32:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/linux32
|
||||||
|
|
||||||
mkdir -p ${basedir}/out/javascript
|
mkdir -p ${basedir}/out/javascript
|
||||||
${podman_run} -v ${basedir}/build-javascript:/root/build -v ${basedir}/out/javascript:/root/out localhost/godot-javascript:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/javascript
|
${podman_run} -v ${basedir}/build-javascript:/root/build -v ${basedir}/out/javascript:/root/out localhost/godot-javascript:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/javascript
|
||||||
@@ -209,23 +203,17 @@ mkdir -p ${basedir}/out/macosx
|
|||||||
${podman_run} -v ${basedir}/build-macosx:/root/build -v ${basedir}/out/macosx:/root/out localhost/godot-osx:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/macosx
|
${podman_run} -v ${basedir}/build-macosx:/root/build -v ${basedir}/out/macosx:/root/out localhost/godot-osx:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/macosx
|
||||||
|
|
||||||
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/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 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-ios:${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/server
|
mkdir -p ${basedir}/out/server/x64
|
||||||
${podman_run} -v ${basedir}/build-server:/root/build -v ${basedir}/out/server:/root/out localhost/godot-linux:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/server
|
${podman_run} -v ${basedir}/build-server:/root/build -v ${basedir}/out/server/x64:/root/out localhost/godot-ubuntu-64:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/server
|
||||||
|
|
||||||
if [ "${build_uwp}" == "1" ]; then
|
mkdir -p ${basedir}/out/uwp
|
||||||
mkdir -p ${basedir}/out/uwp
|
${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
|
||||||
${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
|
|
||||||
fi
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
rm -rf releases tmp web
|
|
||||||
4
clean.sh
4
clean.sh
@@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
rm -rf godot*.tar.gz mono-glue out releases tmp web
|
|
||||||
git status
|
|
||||||
83
config.sh.in
83
config.sh.in
@@ -3,87 +3,42 @@
|
|||||||
# Configuration file for user-specific details.
|
# Configuration file for user-specific details.
|
||||||
# This file is gitignore'd and will be sourced by build scripts.
|
# This file is gitignore'd and will be sourced by build scripts.
|
||||||
|
|
||||||
# Note: For passwords or GPG keys, make sure that special characters such
|
|
||||||
# as $ won't be expanded, by using single quotes to enclose the string,
|
|
||||||
# or escaping with \$.
|
|
||||||
|
|
||||||
# These scripts are designed and tested against podman. They may also work
|
|
||||||
# with docker, but it's not guaranteed. You can set this variable to the
|
|
||||||
# relevant tool in your PATH or an absolute path to run it from.
|
|
||||||
export PODMAN='sudo 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=''
|
|
||||||
|
|
||||||
# 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
|
||||||
# contributors.
|
# contributors.
|
||||||
# You can build your own registry with scripts at
|
# You can build your own registry with scripts at
|
||||||
# https://github.com/godotengine/build-containers
|
# https://github.com/godotengine/build-containers
|
||||||
export REGISTRY='registry.prehensile-tales.com'
|
export REGISTRY="registry.prehensile-tales.com"
|
||||||
|
|
||||||
# Version string of the images to use in build.sh.
|
|
||||||
export IMAGE_VERSION='3.7-f42-mono-6.12.0.206'
|
|
||||||
|
|
||||||
# Default build name used to distinguish between official and custom builds.
|
# Default build name used to distinguish between official and custom builds.
|
||||||
export BUILD_NAME='custom_build'
|
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 WINDOWS_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"
|
||||||
export OSX_HOST=''
|
export OSX_HOST=""
|
||||||
# ID of the Apple certificate used to sign
|
# ID of the Apple certificate used to sign
|
||||||
export OSX_KEY_ID=''
|
export OSX_KEY_ID=""
|
||||||
# Bundle id for the signed app
|
# Bundle id for the signed app
|
||||||
export OSX_BUNDLE_ID=''
|
export OSX_BUNDLE_ID=""
|
||||||
# Username/password for Apple's signing APIs (used for notarytool)
|
# Username/password for Apple's signing APIs (used for atltool)
|
||||||
export APPLE_TEAM=''
|
export APPLE_ID=""
|
||||||
export APPLE_ID=''
|
export APPLE_ID_PASSWORD=""
|
||||||
export APPLE_ID_PASSWORD=''
|
|
||||||
|
|
||||||
# MavenCentral (sonatype) credentials
|
|
||||||
export OSSRH_GROUP_ID=''
|
|
||||||
export OSSRH_USERNAME=''
|
|
||||||
export OSSRH_PASSWORD=''
|
|
||||||
# Sonatype assigned ID used to upload the generated artifacts
|
|
||||||
export SONATYPE_STAGING_PROFILE_ID=''
|
|
||||||
# Used to sign the artifacts after they're built
|
|
||||||
# ID of the GPG key pair, the last eight characters of its fingerprint
|
|
||||||
export SIGNING_KEY_ID=''
|
|
||||||
# Passphrase of the key pair
|
|
||||||
export SIGNING_PASSWORD=''
|
|
||||||
# Base64 encoded private GPG key
|
|
||||||
export SIGNING_KEY=''
|
|
||||||
|
|
||||||
# Android signing configs
|
|
||||||
# Path to the Android keystore file used to sign the release build
|
|
||||||
export GODOT_ANDROID_SIGN_KEYSTORE=''
|
|
||||||
# Key alias used for signing the release build
|
|
||||||
export GODOT_ANDROID_KEYSTORE_ALIAS=''
|
|
||||||
# Password for the key used for signing the release build
|
|
||||||
export GODOT_ANDROID_SIGN_PASSWORD=''
|
|
||||||
|
|||||||
BIN
osslsigncode
Executable file
BIN
osslsigncode
Executable file
Binary file not shown.
@@ -1,174 +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=""
|
|
||||||
skip_stable=0
|
|
||||||
draft_arg=""
|
|
||||||
|
|
||||||
while getopts "h?v:sd" opt; do
|
|
||||||
case "$opt" in
|
|
||||||
h|\?)
|
|
||||||
echo "Usage: $0 [OPTIONS...]"
|
|
||||||
echo
|
|
||||||
echo " -v godot version (e.g: 3.2-stable) [mandatory]"
|
|
||||||
echo " -s don't run stable specific steps"
|
|
||||||
echo " -d publish as draft release on GitHub"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
v)
|
|
||||||
godot_version=$OPTARG
|
|
||||||
;;
|
|
||||||
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
|
|
||||||
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/templates/*
|
|
||||||
cp -f ${basedir}/git/*.{md,txt,png,svg} content/
|
|
||||||
pushd content/bin/
|
|
||||||
unzip ${reldir}/${namever}_x11.64.zip
|
|
||||||
unzip ${reldir}/${namever}_x11.32.zip
|
|
||||||
unzip ${reldir}/${namever}_win64.exe.zip
|
|
||||||
unzip ${reldir}/${namever}_win32.exe.zip
|
|
||||||
unzip ${reldir}/${namever}_osx.universal.zip
|
|
||||||
mv ${namever}_x11.64 godot.x11.opt.tools.64
|
|
||||||
mv ${namever}_x11.32 godot.x11.opt.tools.32
|
|
||||||
mv ${namever}_win64.exe godot.windows.opt.tools.64.exe
|
|
||||||
mv ${namever}_win32.exe godot.windows.opt.tools.32.exe
|
|
||||||
popd
|
|
||||||
unzip ${reldir}/${namever}_export_templates.tpz -d content/editor_data/templates/
|
|
||||||
mv content/editor_data/templates/{templates,${template_version}}
|
|
||||||
steam_build/build.sh
|
|
||||||
popd
|
|
||||||
|
|
||||||
echo "All stable release upload steps done."
|
|
||||||
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}"
|
|
||||||
|
|
||||||
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