mirror of
https://github.com/godotengine/godot-build-scripts.git
synced 2026-01-01 09:48:47 +03:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5bf3bab772 | ||
|
|
d381d33b8e | ||
|
|
dea7aa483e | ||
|
|
9da8d72dfe | ||
|
|
4e25acea96 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,7 +1,5 @@
|
||||
# User-specific configuration and signing key
|
||||
config.sh
|
||||
*.jks
|
||||
*.pfx
|
||||
*.pkcs12
|
||||
|
||||
# Generated by build scripts
|
||||
|
||||
@@ -9,6 +9,8 @@ export OPTIONS="production=yes"
|
||||
export OPTIONS_MONO="module_mono_enabled=yes mono_static=no"
|
||||
export TERM=xterm
|
||||
|
||||
${ANDROID_SDK_ROOT}/cmdline-tools/bin/sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" 'platforms;android-30'
|
||||
|
||||
rm -rf godot
|
||||
mkdir godot
|
||||
cd godot
|
||||
@@ -19,18 +21,6 @@ tar xf /root/godot.tar.gz --strip-components=1
|
||||
if [ "${CLASSICAL}" == "1" ]; then
|
||||
echo "Starting classical build for Android..."
|
||||
|
||||
$SCONS platform=android android_arch=armv7 $OPTIONS tools=yes target=release_debug
|
||||
$SCONS platform=android android_arch=arm64v8 $OPTIONS tools=yes target=release_debug
|
||||
$SCONS platform=android android_arch=x86 $OPTIONS tools=yes target=release_debug
|
||||
$SCONS platform=android android_arch=x86_64 $OPTIONS tools=yes target=release_debug
|
||||
|
||||
pushd platform/android/java
|
||||
./gradlew generateGodotEditor
|
||||
popd
|
||||
|
||||
mkdir -p /root/out/tools
|
||||
cp bin/android_editor.apk /root/out/tools/
|
||||
|
||||
$SCONS platform=android android_arch=armv7 $OPTIONS tools=no target=release_debug
|
||||
$SCONS platform=android android_arch=armv7 $OPTIONS tools=no target=release
|
||||
|
||||
@@ -48,10 +38,10 @@ if [ "${CLASSICAL}" == "1" ]; then
|
||||
popd
|
||||
|
||||
mkdir -p /root/out/templates
|
||||
cp bin/android_source.zip /root/out/templates/
|
||||
cp bin/android_debug.apk /root/out/templates/
|
||||
cp bin/android_release.apk /root/out/templates/
|
||||
cp bin/godot-lib.release.aar /root/out/templates/
|
||||
cp bin/android_source.zip /root/out/templates
|
||||
cp bin/android_debug.apk /root/out/templates/android_debug.apk
|
||||
cp bin/android_release.apk /root/out/templates/android_release.apk
|
||||
cp bin/godot-lib.release.aar /root/out/templates/godot-lib.release.aar
|
||||
fi
|
||||
|
||||
# Mono
|
||||
@@ -61,12 +51,13 @@ if [ "${MONO}" == "1" ]; then
|
||||
|
||||
cp /root/mono-glue/*.cpp modules/mono/glue/
|
||||
cp -r /root/mono-glue/GodotSharp/GodotSharp/Generated modules/mono/glue/GodotSharp/GodotSharp/
|
||||
cp -r /root/mono-glue/GodotSharp/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
||||
|
||||
$SCONS platform=android android_arch=armv7 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-armv7-release tools=no target=release_debug
|
||||
$SCONS platform=android android_arch=armv7 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-armv7-release tools=no target=release
|
||||
$SCONS platform=android android_arch=armv7 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-armeabi-v7a-release tools=no target=release_debug
|
||||
$SCONS platform=android android_arch=armv7 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-armeabi-v7a-release tools=no target=release
|
||||
|
||||
$SCONS platform=android android_arch=arm64v8 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-arm64v8-release tools=no target=release_debug
|
||||
$SCONS platform=android android_arch=arm64v8 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-arm64v8-release tools=no target=release
|
||||
$SCONS platform=android android_arch=arm64v8 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-arm64-v8a-release tools=no target=release_debug
|
||||
$SCONS platform=android android_arch=arm64v8 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-arm64-v8a-release tools=no target=release
|
||||
|
||||
$SCONS platform=android android_arch=x86 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-x86-release tools=no target=release_debug
|
||||
$SCONS platform=android android_arch=x86 $OPTIONS $OPTIONS_MONO mono_prefix=/root/mono-installs/android-x86-release tools=no target=release
|
||||
@@ -79,10 +70,10 @@ if [ "${MONO}" == "1" ]; then
|
||||
popd
|
||||
|
||||
mkdir -p /root/out/templates-mono
|
||||
cp bin/android_source.zip /root/out/templates-mono/
|
||||
cp bin/android_debug.apk /root/out/templates-mono/
|
||||
cp bin/android_release.apk /root/out/templates-mono/
|
||||
cp bin/godot-lib.release.aar /root/out/templates-mono/
|
||||
cp bin/android_source.zip /root/out/templates-mono
|
||||
cp bin/android_debug.apk /root/out/templates-mono/android_debug.apk
|
||||
cp bin/android_release.apk /root/out/templates-mono/android_release.apk
|
||||
cp bin/godot-lib.release.aar /root/out/templates-mono/godot-lib.release.aar
|
||||
|
||||
mkdir -p /root/out/templates-mono/bcl
|
||||
cp -r /root/mono-installs/android-bcl/* /root/out/templates-mono/bcl/
|
||||
|
||||
@@ -11,7 +11,7 @@ export OPTIONS="production=yes use_lto=no"
|
||||
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes"
|
||||
export TERM=xterm
|
||||
|
||||
export IOS_SDK="15.4"
|
||||
export IOS_SDK="14.4"
|
||||
export IOS_LIPO="/root/ioscross/arm64/bin/arm-apple-darwin11-lipo"
|
||||
|
||||
rm -rf godot
|
||||
@@ -24,33 +24,19 @@ tar xf /root/godot.tar.gz --strip-components=1
|
||||
if [ "${CLASSICAL}" == "1" ]; then
|
||||
echo "Starting classical build for iOS..."
|
||||
|
||||
# arm64 device
|
||||
$SCONS platform=iphone $OPTIONS arch=arm64 tools=no ios_simulator=no target=release_debug \
|
||||
$SCONS platform=iphone $OPTIONS arch=arm64 tools=no target=release_debug \
|
||||
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-"
|
||||
|
||||
# arm64 simulator
|
||||
# Disabled for now as it doesn't work with cctools-port and current LLVM.
|
||||
# See https://github.com/godotengine/build-containers/pull/85.
|
||||
#$SCONS platform=iphone $OPTIONS arch=arm64 tools=no ios_simulator=yes target=release_debug \
|
||||
# IPHONESDK="/root/ioscross/arm64_sim/SDK/iPhoneOS${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/iPhoneOS${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/iPhoneOS${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/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/x86_64_sim/" ios_triple="x86_64-apple-darwin11-"
|
||||
$SCONS platform=iphone $OPTIONS arch=x86_64 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-"
|
||||
$SCONS platform=iphone $OPTIONS arch=x86_64 tools=no target=release \
|
||||
IPHONESDK="/root/ioscross/x86_64/SDK/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/x86_64/" ios_triple="x86_64-apple-darwin11-"
|
||||
|
||||
mkdir -p /root/out/templates
|
||||
cp bin/libgodot.iphone.opt.arm64.a /root/out/templates/libgodot.iphone.a
|
||||
cp bin/libgodot.iphone.opt.debug.arm64.a /root/out/templates/libgodot.iphone.debug.a
|
||||
#$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
|
||||
$IOS_LIPO -create bin/libgodot.iphone.opt.arm64.a bin/libgodot.iphone.opt.x86_64.a -output /root/out/templates/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/libgodot.iphone.opt.debug.fat
|
||||
fi
|
||||
|
||||
# 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/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
||||
|
||||
# arm64 device
|
||||
$SCONS platform=iphone $OPTIONS $OPTIONS_MONO arch=arm64 ios_simulator=no mono_prefix=/root/mono-installs/ios-arm64-release tools=no target=release_debug \
|
||||
$SCONS platform=iphone $OPTIONS $OPTIONS_MONO arch=arm64 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-"
|
||||
$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-"
|
||||
|
||||
# arm64 simulator
|
||||
# Disabled for now as it doesn't work with cctools-port and current LLVM.
|
||||
# See https://github.com/godotengine/build-containers/pull/85.
|
||||
#$SCONS platform=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/arm64_sim/SDK/iPhoneOS${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/iPhoneOS${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/iPhoneOS${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/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/x86_64_sim/" ios_triple="x86_64-apple-darwin11-"
|
||||
$SCONS platform=iphone $OPTIONS $OPTIONS_MONO arch=x86_64 mono_prefix=/root/mono-installs/ios-x86_64-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-"
|
||||
$SCONS platform=iphone $OPTIONS $OPTIONS_MONO arch=x86_64 mono_prefix=/root/mono-installs/ios-x86_64-release tools=no target=release \
|
||||
IPHONESDK="/root/ioscross/x86_64/SDK/iPhoneOS${IOS_SDK}.sdk" IPHONEPATH="/root/ioscross/x86_64/" ios_triple="x86_64-apple-darwin11-"
|
||||
|
||||
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
|
||||
cp bin/libgodot.iphone.opt.debug.arm64.a /root/out/templates-mono/libgodot.iphone.debug.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/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
|
||||
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
|
||||
mkdir -p /root/out/templates-mono/iphone-mono-libs
|
||||
$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/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/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
|
||||
|
||||
# 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
|
||||
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
|
||||
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-ee-interp.iphone.arm64.a -output /root/out/templates-mono/iphone-mono-libs/libmono-ee-interp.iphone.fat.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
|
||||
$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
|
||||
cp -r /root/mono-installs/ios-bcl/* /root/out/templates-mono/bcl
|
||||
|
||||
@@ -7,10 +7,16 @@ set -e
|
||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
||||
export OPTIONS="production=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
|
||||
|
||||
# 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
|
||||
mkdir godot
|
||||
cd godot
|
||||
@@ -21,30 +27,15 @@ tar xf /root/godot.tar.gz --strip-components=1
|
||||
if [ "${CLASSICAL}" == "1" ]; then
|
||||
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
|
||||
mkdir -p /root/out/x64/tools
|
||||
cp -rvp bin/* /root/out/x64/tools
|
||||
mkdir -p /root/out/tools
|
||||
cp -rvp bin/* /root/out/tools
|
||||
rm -rf bin
|
||||
|
||||
$SCONS platform=x11 $OPTIONS tools=no target=release_debug
|
||||
$SCONS platform=x11 $OPTIONS tools=no target=release
|
||||
mkdir -p /root/out/x64/templates
|
||||
cp -rvp bin/* /root/out/x64/templates
|
||||
rm -rf bin
|
||||
|
||||
export PATH="${GODOT_SDK_LINUX_X86}/bin:${BASE_PATH}"
|
||||
|
||||
$SCONS platform=x11 $OPTIONS tools=yes target=release_debug bits=32
|
||||
mkdir -p /root/out/x86/tools
|
||||
cp -rvp bin/* /root/out/x86/tools
|
||||
rm -rf bin
|
||||
|
||||
$SCONS platform=x11 $OPTIONS tools=no target=release_debug bits=32
|
||||
$SCONS platform=x11 $OPTIONS tools=no target=release bits=32
|
||||
mkdir -p /root/out/x86/templates
|
||||
cp -rvp bin/* /root/out/x86/templates
|
||||
mkdir -p /root/out/templates
|
||||
cp -rvp bin/* /root/out/templates
|
||||
rm -rf bin
|
||||
fi
|
||||
|
||||
@@ -56,33 +47,21 @@ if [ "${MONO}" == "1" ]; then
|
||||
cp /root/mono-glue/*.cpp modules/mono/glue/
|
||||
cp -r /root/mono-glue/GodotSharp/GodotSharp/Generated modules/mono/glue/GodotSharp/GodotSharp/
|
||||
cp -r /root/mono-glue/GodotSharp/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
||||
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig/
|
||||
|
||||
export PATH="${GODOT_SDK_LINUX_X86_64}/bin:${BASE_PATH}"
|
||||
export OPTIONS_MONO_PREFIX="${OPTIONS} ${OPTIONS_MONO} mono_prefix=${MONO_PREFIX_X86_64}"
|
||||
# Workaround for MSBuild segfault on Ubuntu containers, we build the CIL on Fedora and copy here.
|
||||
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
|
||||
mkdir -p /root/out/x64/tools-mono
|
||||
cp -rvp bin/* /root/out/x64/tools-mono
|
||||
$SCONS platform=x11 $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
|
||||
|
||||
$SCONS platform=x11 $OPTIONS_MONO_PREFIX tools=no target=release_debug
|
||||
$SCONS platform=x11 $OPTIONS_MONO_PREFIX tools=no target=release
|
||||
mkdir -p /root/out/x64/templates-mono
|
||||
cp -rvp bin/* /root/out/x64/templates-mono
|
||||
rm -rf bin
|
||||
|
||||
export PATH="${GODOT_SDK_LINUX_X86}/bin:${BASE_PATH}"
|
||||
export OPTIONS_MONO_PREFIX="${OPTIONS} ${OPTIONS_MONO} mono_prefix=${MONO_PREFIX_X86}"
|
||||
|
||||
$SCONS platform=x11 $OPTIONS_MONO_PREFIX tools=yes target=release_debug copy_mono_root=yes bits=32
|
||||
mkdir -p /root/out/x86/tools-mono
|
||||
cp -rvp bin/* /root/out/x86/tools-mono
|
||||
rm -rf bin
|
||||
|
||||
$SCONS platform=x11 $OPTIONS_MONO_PREFIX tools=no target=release_debug bits=32
|
||||
$SCONS platform=x11 $OPTIONS_MONO_PREFIX tools=no target=release bits=32
|
||||
mkdir -p /root/out/x86/templates-mono
|
||||
cp -rvp bin/* /root/out/x86/templates-mono
|
||||
$SCONS platform=x11 $OPTIONS $OPTIONS_MONO tools=no target=release_debug
|
||||
$SCONS platform=x11 $OPTIONS $OPTIONS_MONO tools=no target=release
|
||||
mkdir -p /root/out/templates-mono
|
||||
cp -rvp bin/* /root/out/templates-mono
|
||||
rm -rf bin
|
||||
fi
|
||||
|
||||
|
||||
@@ -5,12 +5,10 @@ set -e
|
||||
# Config
|
||||
|
||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
||||
export OPTIONS="osxcross_sdk=darwin21.4 production=yes"
|
||||
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes"
|
||||
export MONO_PREFIX_X86_64="/root/mono-installs/desktop-osx-x86_64-release"
|
||||
export MONO_PREFIX_ARM64="/root/mono-installs/desktop-osx-arm64-release"
|
||||
export STRIP="x86_64-apple-darwin21.4-strip -u -r"
|
||||
export OPTIONS="osxcross_sdk=darwin20.2 production=yes"
|
||||
export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes mono_prefix=/root/dependencies/mono"
|
||||
export TERM=xterm
|
||||
export STRIP="x86_64-apple-darwin20.2-strip -u -r"
|
||||
|
||||
rm -rf 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/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
||||
|
||||
# Note: A bit of dylib wrangling involved as x86_64 and arm64 builds both generate GodotSharp
|
||||
# so the second build overrides the first, but we need to lipo the libs to make them universal.
|
||||
# We also need to ensure that /etc/mono/config has the proper filenames (keep arm64 as the last
|
||||
# build so that we rely on its config, which has libmono-native.dylib instead of
|
||||
# libmono-native-compat.dylib).
|
||||
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-compat.dylib tmp-lib/arm64/libmono-native.dylib -output tmp-lib/libmono-native.dylib
|
||||
lipo -create tmp-lib/x86_64/libMonoPosixHelper.dylib tmp-lib/arm64/libMonoPosixHelper.dylib -output tmp-lib/libMonoPosixHelper.dylib
|
||||
lipo -create tmp-lib/x86_64/libmono-btls-shared.dylib tmp-lib/arm64/libmono-btls-shared.dylib -output tmp-lib/libmono-btls-shared.dylib
|
||||
|
||||
cp -f tmp-lib/*.dylib bin/GodotSharp/Mono/lib/
|
||||
$SCONS platform=osx $OPTIONS $OPTIONS_MONO arch=x86_64 tools=yes target=release_debug copy_mono_root=yes
|
||||
$STRIP bin/godot.osx.opt.tools.x86_64.mono
|
||||
#$SCONS platform=osx $OPTIONS $OPTIONS_MONO arch=arm64 tools=yes target=release_debug copy_mono_root=yes
|
||||
#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
|
||||
|
||||
mkdir -p /root/out/tools-mono
|
||||
cp -rvp bin/* /root/out/tools-mono
|
||||
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 mono_prefix=$MONO_PREFIX_ARM64 arch=arm64 tools=no target=release_debug
|
||||
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
|
||||
$STRIP 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
|
||||
$SCONS platform=osx $OPTIONS $OPTIONS_MONO mono_prefix=$MONO_PREFIX_ARM64 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
|
||||
$STRIP bin/godot.osx.opt.universal.mono
|
||||
|
||||
cp -f tmp-lib/*.dylib bin/data.mono.osx.64.release/Mono/lib/
|
||||
cp -f tmp-lib/*.dylib bin/data.mono.osx.64.release_debug/Mono/lib/
|
||||
$SCONS platform=osx $OPTIONS $OPTIONS_MONO arch=x86_64 tools=no target=release_debug
|
||||
$STRIP bin/godot.osx.opt.debug.x86_64.mono
|
||||
#$SCONS platform=osx $OPTIONS $OPTIONS_MONO arch=arm64 tools=no target=release_debug
|
||||
#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
|
||||
#$STRIP bin/godot.osx.opt.debug.universal.mono
|
||||
$SCONS platform=osx $OPTIONS $OPTIONS_MONO arch=x86_64 tools=no target=release
|
||||
$STRIP bin/godot.osx.opt.x86_64.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
|
||||
#$STRIP bin/godot.osx.opt.universal.mono
|
||||
|
||||
mkdir -p /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>
|
||||
@@ -26,6 +26,14 @@ if [ "${MONO}" == "1" ]; then
|
||||
|
||||
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
|
||||
|
||||
# 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
|
||||
|
||||
echo "Mono glue generated successfully"
|
||||
|
||||
103
build-release.sh
103
build-release.sh
@@ -7,18 +7,18 @@ set -e
|
||||
# For signing keystore and password.
|
||||
source ./config.sh
|
||||
|
||||
can_sign_windows=0
|
||||
if [ ! -z "${SIGN_KEYSTORE}" ] && [ ! -z "${SIGN_PASSWORD}" ] && [[ $(type -P "osslsigncode") ]]; then
|
||||
can_sign_windows=1
|
||||
can_sign=0
|
||||
if [ ! -z "${SIGN_KEYSTORE}" ] && [ ! -z "${SIGN_PASSWORD}" ]; then
|
||||
can_sign=1
|
||||
else
|
||||
echo "Disabling Windows binary signing as config.sh does not define the required data (SIGN_KEYSTORE, SIGN_PASSWORD), or osslsigncode can't be found in PATH."
|
||||
echo "Disabling binary signing as config.sh does not define the required data."
|
||||
fi
|
||||
|
||||
sign_windows() {
|
||||
if [ $can_sign_windows == 0 ]; then
|
||||
if [ $can_sign == 0 ]; then
|
||||
return
|
||||
fi
|
||||
osslsigncode sign -pkcs12 ${SIGN_KEYSTORE} -pass "${SIGN_PASSWORD}" -n "${SIGN_NAME}" -i "${SIGN_URL}" -t http://timestamp.comodoca.com -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
|
||||
}
|
||||
|
||||
@@ -33,27 +33,30 @@ sign_macos() {
|
||||
|
||||
if [[ "${_is_mono}" == "1" ]]; then
|
||||
_appname="Godot_mono.app"
|
||||
_entitlements=editor_mono.entitlements
|
||||
_sharpdir="${_appname}/Contents/Resources/GodotSharp"
|
||||
_extra_files="${_sharpdir}/Mono/lib/*.dylib ${_sharpdir}/Tools/aot-compilers/*/*"
|
||||
else
|
||||
_appname="Godot.app"
|
||||
_entitlements=editor.entitlements
|
||||
fi
|
||||
|
||||
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}" "
|
||||
cd ${_osx_tmpdir} && \
|
||||
unzip ${_binname}.zip && \
|
||||
codesign --force --timestamp \
|
||||
--options=runtime --entitlements editor.entitlements \
|
||||
--options=runtime --entitlements ${_entitlements} \
|
||||
-s ${OSX_KEY_ID} -v ${_extra_files} ${_appname} && \
|
||||
zip -r ${_binname}_signed.zip ${_appname}"
|
||||
|
||||
_request_uuid=$(ssh "${OSX_HOST}" "xcrun notarytool submit ${_osx_tmpdir}/${_binname}_signed.zip --team-id \"${APPLE_TEAM}\" --apple-id \"${APPLE_ID}\" --password \"${APPLE_ID_PASSWORD}\" --no-progress --output-format json")
|
||||
_request_uuid=$(echo ${_request_uuid} | sed -e 's/.*"id":"\([^"]*\)".*/\1/')
|
||||
if ! ssh "${OSX_HOST}" "xcrun notarytool wait ${_request_uuid} --team-id \"${APPLE_TEAM}\" --apple-id \"${APPLE_ID}\" --password \"${APPLE_ID_PASSWORD}\" | grep -q status:\ Accepted"; then
|
||||
_request_uuid=$(ssh "${OSX_HOST}" "xcrun altool --notarize-app --primary-bundle-id \"${OSX_BUNDLE_ID}\" --username \"${APPLE_ID}\" --password \"${APPLE_ID_PASSWORD}\" --file ${_osx_tmpdir}/${_binname}_signed.zip")
|
||||
_request_uuid=$(echo ${_request_uuid} | sed -e 's/.*RequestUUID = //')
|
||||
ssh "${OSX_HOST}" "while xcrun altool --notarization-info ${_request_uuid} -u \"${APPLE_ID}\" -p \"${APPLE_ID_PASSWORD}\" | grep -q Status:\ in\ progress; do echo Waiting on Apple notarization...; sleep 30s; done"
|
||||
if ! ssh "${OSX_HOST}" "xcrun altool --notarization-info ${_request_uuid} -u \"${APPLE_ID}\" -p \"${APPLE_ID_PASSWORD}\" | grep -q Status:\ success"; then
|
||||
echo "Notarization failed."
|
||||
_notarization_log=$(ssh "${OSX_HOST}" "xcrun notarytool log ${_request_uuid} --team-id \"${APPLE_TEAM}\" --apple-id \"${APPLE_ID}\" --password \"${APPLE_ID_PASSWORD}\"")
|
||||
_notarization_log=$(ssh "${OSX_HOST}" "xcrun altool --notarization-info ${_request_uuid} -u \"${APPLE_ID}\" -p \"${APPLE_ID_PASSWORD}\"")
|
||||
echo "${_notarization_log}"
|
||||
ssh "${OSX_HOST}" "rm -rf ${_osx_tmpdir}"
|
||||
exit 1
|
||||
@@ -127,13 +130,10 @@ done
|
||||
if [ -z "${godot_version}" -o -z "${templates_version}" ]; then
|
||||
echo "Mandatory argument -v or -t missing."
|
||||
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
|
||||
|
||||
export basedir=$(pwd)
|
||||
export webdir="${basedir}/web/${templates_version}"
|
||||
export webdir="${basedir}/web/${godot_version}"
|
||||
export reldir="${basedir}/releases/${godot_version}"
|
||||
export reldir_mono="${reldir}/mono"
|
||||
export tmpdir="${basedir}/tmp"
|
||||
@@ -191,26 +191,18 @@ if [ "${build_classical}" == "1" ]; then
|
||||
|
||||
# Editor
|
||||
binname="${godot_basename}_win64.exe"
|
||||
batname="${godot_basename}_win64_console.cmd"
|
||||
cp out/windows/x64/tools/godot.windows.opt.tools.64.exe ${binname}
|
||||
strip ${binname}
|
||||
sign_windows ${binname}
|
||||
echo "@echo off" > ${batname}
|
||||
echo ${binname} >> ${batname}
|
||||
echo "pause > nul" >> ${batname}
|
||||
zip -q -9 "${reldir}/${binname}.zip" ${binname} ${batname}
|
||||
rm ${binname} ${batname}
|
||||
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
||||
rm ${binname}
|
||||
|
||||
binname="${godot_basename}_win32.exe"
|
||||
batname="${godot_basename}_win32_console.cmd"
|
||||
cp out/windows/x86/tools/godot.windows.opt.tools.32.exe ${binname}
|
||||
strip ${binname}
|
||||
sign_windows ${binname}
|
||||
echo "@echo off" > ${batname}
|
||||
echo ${binname} >> ${batname}
|
||||
echo "pause > nul" >> ${batname}
|
||||
zip -q -9 "${reldir}/${binname}.zip" ${binname} ${batname}
|
||||
rm ${binname} ${batname}
|
||||
zip -q -9 "${reldir}/${binname}.zip" ${binname}
|
||||
rm ${binname}
|
||||
|
||||
# Templates
|
||||
cp out/windows/x64/templates/godot.windows.opt.64.exe ${templatesdir}/windows_64_release.exe
|
||||
@@ -283,10 +275,6 @@ if [ "${build_classical}" == "1" ]; then
|
||||
# Lib for direct download
|
||||
cp out/android/templates/godot-lib.release.aar ${reldir}/godot-lib.${templates_version}.release.aar
|
||||
|
||||
# Editor
|
||||
binname="${godot_basename}_android_editor.apk"
|
||||
cp out/android/tools/android_editor.apk ${reldir}/${binname}
|
||||
|
||||
# Templates
|
||||
cp out/android/templates/*.apk ${templatesdir}/
|
||||
cp out/android/templates/android_source.zip ${templatesdir}/
|
||||
@@ -295,10 +283,9 @@ if [ "${build_classical}" == "1" ]; then
|
||||
|
||||
rm -rf 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.debug.simulator.a ios_xcode/libgodot.iphone.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a
|
||||
cp out/ios/templates/libgodot.iphone.a ios_xcode/libgodot.iphone.release.xcframework/ios-arm64/libgodot.a
|
||||
cp out/ios/templates/libgodot.iphone.debug.a ios_xcode/libgodot.iphone.debug.xcframework/ios-arm64/libgodot.a
|
||||
cp out/ios/templates/libgodot.iphone.opt.fat ios_xcode/libgodot.iphone.release.fat.a
|
||||
cp out/ios/templates/libgodot.iphone.opt.debug.fat ios_xcode/libgodot.iphone.debug.fat.a
|
||||
chmod +x ios_xcode/libgodot.iphone.*
|
||||
cd ios_xcode
|
||||
zip -q -9 -r "${templatesdir}/iphone.zip" *
|
||||
cd ..
|
||||
@@ -306,19 +293,19 @@ if [ "${build_classical}" == "1" ]; then
|
||||
|
||||
## UWP (Classical) ##
|
||||
|
||||
if [ ! -d "deps/angle-uwp" ]; then
|
||||
echo "Downloading ANGLE binaries from https://github.com/godotengine/godot-build-scripts/releases/tag/_deps/"
|
||||
if [ ! -d "deps/angle" ]; then
|
||||
echo "Downloading ANGLE binaries from https://github.com/GodotBuilder/godot-builds/releases/tag/_tools"
|
||||
mkdir -p deps && cd deps
|
||||
curl -L -o angle-uwp.7z https://github.com/godotengine/godot-build-scripts/releases/download/_deps/angle-uwp-2.1.13.7z
|
||||
7z x angle-uwp.7z && rm -f angle-uwp.7z
|
||||
curl -LO https://github.com/GodotBuilder/godot-builds/releases/download/_tools/angle.7z
|
||||
7z x angle.7z && rm -f angle.7z
|
||||
cd ..
|
||||
fi
|
||||
|
||||
rm -rf uwp_template_*
|
||||
for arch in ARM Win32 x64; do
|
||||
cp -r git/misc/dist/uwp_template uwp_template_${arch}
|
||||
cp deps/angle-uwp/${arch}/libEGL.dll \
|
||||
deps/angle-uwp/${arch}/libGLESv2.dll \
|
||||
cp deps/angle/winrt/10/src/Release_${arch}/libEGL.dll \
|
||||
deps/angle/winrt/10/src/Release_${arch}/libGLESv2.dll \
|
||||
uwp_template_${arch}/
|
||||
cp -r uwp_template_${arch} uwp_template_${arch}_debug
|
||||
done
|
||||
@@ -399,32 +386,22 @@ if [ "${build_mono}" == "1" ]; then
|
||||
|
||||
# Editor
|
||||
binname="${godot_basename}_mono_win64"
|
||||
batname="${godot_basename}_mono_win64_console.cmd"
|
||||
mkdir -p ${binname}
|
||||
cp out/windows/x64/tools-mono/godot.windows.opt.tools.64.mono.exe ${binname}/${binname}.exe
|
||||
strip ${binname}/${binname}.exe
|
||||
sign_windows ${binname}/${binname}.exe
|
||||
cp -rp out/windows/x64/tools-mono/GodotSharp ${binname}/
|
||||
cp -rp out/aot-compilers ${binname}/GodotSharp/Tools/
|
||||
echo "@echo off" > ${batname}
|
||||
echo ${binname}.exe >> ${batname}
|
||||
echo "pause > nul" >> ${batname}
|
||||
mv ${batname} ${binname}/
|
||||
zip -r -q -9 "${reldir_mono}/${binname}.zip" ${binname}
|
||||
rm -rf ${binname}
|
||||
|
||||
binname="${godot_basename}_mono_win32"
|
||||
batname="${godot_basename}_mono_win32_console.cmd"
|
||||
mkdir -p ${binname}
|
||||
cp out/windows/x86/tools-mono/godot.windows.opt.tools.32.mono.exe ${binname}/${binname}.exe
|
||||
strip ${binname}/${binname}.exe
|
||||
sign_windows ${binname}/${binname}.exe
|
||||
cp -rp out/windows/x86/tools-mono/GodotSharp ${binname}/
|
||||
cp -rp out/aot-compilers ${binname}/GodotSharp/Tools/
|
||||
echo "@echo off" > ${batname}
|
||||
echo ${binname}.exe >> ${batname}
|
||||
echo "pause > nul" >> ${batname}
|
||||
mv ${batname} ${binname}/
|
||||
zip -r -q -9 "${reldir_mono}/${binname}.zip" ${binname}
|
||||
rm -rf ${binname}
|
||||
|
||||
@@ -443,11 +420,11 @@ if [ "${build_mono}" == "1" ]; then
|
||||
## OSX (Mono) ##
|
||||
|
||||
# Editor
|
||||
binname="${godot_basename}_mono_osx.universal"
|
||||
binname="${godot_basename}_mono_osx.64"
|
||||
rm -rf Godot_mono.app
|
||||
cp -r git/misc/dist/osx_tools.app Godot_mono.app
|
||||
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/aot-compilers Godot_mono.app/Contents/Resources/GodotSharp/Tools/
|
||||
chmod +x Godot_mono.app/Contents/MacOS/Godot
|
||||
@@ -459,8 +436,8 @@ if [ "${build_mono}" == "1" ]; then
|
||||
rm -rf osx_template.app
|
||||
cp -r git/misc/dist/osx_template.app .
|
||||
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.universal.mono osx_template.app/Contents/MacOS/godot_osx_release.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.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/
|
||||
chmod +x osx_template.app/Contents/MacOS/godot_osx*
|
||||
zip -q -9 -r "${templatesdir_mono}/osx.zip" osx_template.app
|
||||
@@ -502,10 +479,6 @@ if [ "${build_mono}" == "1" ]; then
|
||||
# Lib for direct download
|
||||
cp out/android/templates-mono/godot-lib.release.aar ${reldir_mono}/godot-lib.${templates_version}.mono.release.aar
|
||||
|
||||
# Editor
|
||||
#binname="${godot_basename}_mono_android_editor.apk"
|
||||
#cp out/android/tools-mono/android_editor.apk ${reldir_mono}/${binname}
|
||||
|
||||
# Templates
|
||||
cp out/android/templates-mono/*.apk ${templatesdir_mono}/
|
||||
cp out/android/templates-mono/android_source.zip ${templatesdir_mono}/
|
||||
@@ -518,10 +491,9 @@ if [ "${build_mono}" == "1" ]; then
|
||||
|
||||
rm -rf 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.debug.simulator.a ios_xcode/libgodot.iphone.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a
|
||||
cp out/ios/templates-mono/libgodot.iphone.a ios_xcode/libgodot.iphone.release.xcframework/ios-arm64/libgodot.a
|
||||
cp out/ios/templates-mono/libgodot.iphone.debug.a ios_xcode/libgodot.iphone.debug.xcframework/ios-arm64/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.opt.debug.fat ios_xcode/libgodot.iphone.debug.fat.a
|
||||
chmod +x ios_xcode/libgodot.iphone.*
|
||||
cd ios_xcode
|
||||
zip -q -9 -r "${templatesdir_mono}/iphone.zip" *
|
||||
cd ..
|
||||
@@ -529,7 +501,8 @@ if [ "${build_mono}" == "1" ]; then
|
||||
|
||||
mkdir -p ${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) ##
|
||||
|
||||
|
||||
@@ -6,9 +6,10 @@ set -e
|
||||
|
||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
||||
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 PATH="${GODOT_SDK_LINUX_X86_64}/bin:${BASE_PATH}"
|
||||
export CC="gcc-9"
|
||||
export CXX="g++-9"
|
||||
|
||||
rm -rf godot
|
||||
mkdir godot
|
||||
@@ -20,14 +21,15 @@ tar xf /root/godot.tar.gz --strip-components=1
|
||||
if [ "${CLASSICAL}" == "1" ]; then
|
||||
echo "Starting classical build for Server..."
|
||||
|
||||
$SCONS platform=server $OPTIONS tools=yes target=release_debug
|
||||
mkdir -p /root/out/x64/tools
|
||||
cp -rvp bin/* /root/out/x64/tools
|
||||
$SCONS platform=server CC=$CC CXX=$CXX $OPTIONS tools=yes target=release_debug
|
||||
mkdir -p /root/out/tools
|
||||
cp -rvp bin/* /root/out/tools
|
||||
rm -rf bin
|
||||
|
||||
$SCONS platform=server $OPTIONS tools=no target=release
|
||||
mkdir -p /root/out/x64/templates
|
||||
cp -rvp bin/* /root/out/x64/templates
|
||||
#$SCONS platform=server CC=$CC CXX=$CXX $OPTIONS tools=no target=release_debug
|
||||
$SCONS platform=server CC=$CC CXX=$CXX $OPTIONS tools=no target=release
|
||||
mkdir -p /root/out/templates
|
||||
cp -rvp bin/* /root/out/templates
|
||||
rm -rf bin
|
||||
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/GodotSharpEditor/Generated modules/mono/glue/GodotSharp/GodotSharpEditor/
|
||||
|
||||
$SCONS platform=server $OPTIONS $OPTIONS_MONO tools=yes target=release_debug copy_mono_root=yes
|
||||
mkdir -p /root/out/x64/tools-mono
|
||||
cp -rvp bin/* /root/out/x64/tools-mono
|
||||
# Workaround for MSBuild segfault on Ubuntu containers, we build the CIL on Fedora and copy here.
|
||||
mkdir -p bin
|
||||
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
|
||||
|
||||
$SCONS platform=server $OPTIONS $OPTIONS_MONO tools=no target=release
|
||||
mkdir -p /root/out/x64/templates-mono
|
||||
cp -rvp bin/* /root/out/x64/templates-mono
|
||||
#$SCONS platform=server CC=$CC CXX=$CXX $OPTIONS $OPTIONS_MONO tools=no target=release_debug
|
||||
$SCONS platform=server CC=$CC CXX=$CXX $OPTIONS $OPTIONS_MONO tools=no target=release
|
||||
mkdir -p /root/out/templates-mono
|
||||
cp -rvp bin/* /root/out/templates-mono
|
||||
rm -rf bin
|
||||
fi
|
||||
|
||||
|
||||
@@ -7,9 +7,9 @@ set -e
|
||||
export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no"
|
||||
export OPTIONS="production=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 MONO32_PREFIX=/root/dependencies/mono-32
|
||||
export MONO64_PREFIX=/root/dependencies/mono-64
|
||||
|
||||
rm -rf 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/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_MONO_PREFIX tools=yes target=release_debug copy_mono_root=yes
|
||||
$SCONS platform=windows bits=64 $OPTIONS $OPTIONS_MONO mono_prefix=$MONO64_PREFIX tools=yes target=release_debug copy_mono_root=yes
|
||||
mkdir -p /root/out/x64/tools-mono
|
||||
cp -rvp bin/* /root/out/x64/tools-mono
|
||||
rm -rf bin
|
||||
|
||||
$SCONS platform=windows bits=64 $OPTIONS_MONO_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_debug
|
||||
$SCONS platform=windows bits=64 $OPTIONS $OPTIONS_MONO mono_prefix=$MONO64_PREFIX tools=no target=release
|
||||
mkdir -p /root/out/x64/templates-mono
|
||||
cp -rvp bin/* /root/out/x64/templates-mono
|
||||
rm -rf bin
|
||||
|
||||
export OPTIONS_MONO_PREFIX="${OPTIONS} ${OPTIONS_MONO} mono_prefix=${MONO_PREFIX_X86}"
|
||||
|
||||
$SCONS platform=windows bits=32 $OPTIONS_MONO_PREFIX tools=yes target=release_debug copy_mono_root=yes
|
||||
$SCONS platform=windows bits=32 $OPTIONS $OPTIONS_MONO mono_prefix=$MONO32_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=windows bits=32 $OPTIONS_MONO_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_debug
|
||||
$SCONS platform=windows bits=32 $OPTIONS $OPTIONS_MONO mono_prefix=$MONO32_PREFIX tools=no target=release
|
||||
mkdir -p /root/out/x86/templates-mono
|
||||
cp -rvp bin/* /root/out/x86/templates-mono
|
||||
rm -rf bin
|
||||
|
||||
15
build.sh
15
build.sh
@@ -122,7 +122,7 @@ fi
|
||||
|
||||
if [ $skip_download == 0 ]; then
|
||||
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 ! ${podman} pull ${registry}/godot/${image}; then
|
||||
echo "ERROR: image $image does not exist and can't be downloaded"
|
||||
@@ -177,7 +177,7 @@ mkdir -p ${basedir}/out
|
||||
mkdir -p ${basedir}/out/logs
|
||||
|
||||
export podman_run="${podman} run -it --rm --env BUILD_NAME --env GODOT_VERSION_STATUS --env NUM_CORES --env CLASSICAL=${build_classical} --env MONO=${build_mono} -v ${basedir}/godot-${godot_version}.tar.gz:/root/godot.tar.gz -v ${basedir}/mono-glue:/root/mono-glue -w /root/"
|
||||
export img_version=3.x-f36-mono-6.12.0.182
|
||||
export img_version=3.x-mono-6.12.0.122
|
||||
|
||||
# Get AOT compilers from their containers.
|
||||
mkdir -p ${basedir}/out/aot-compilers
|
||||
@@ -190,8 +190,11 @@ ${podman_run} -v ${basedir}/build-mono-glue:/root/build localhost/godot-mono-glu
|
||||
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
|
||||
|
||||
mkdir -p ${basedir}/out/linux
|
||||
${podman_run} -v ${basedir}/build-linux:/root/build -v ${basedir}/out/linux:/root/out localhost/godot-linux:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/linux
|
||||
mkdir -p ${basedir}/out/linux/x64
|
||||
${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
|
||||
${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
|
||||
@@ -205,8 +208,8 @@ ${podman_run} -v ${basedir}/build-android:/root/build -v ${basedir}/out/android:
|
||||
mkdir -p ${basedir}/out/ios
|
||||
${podman_run} -v ${basedir}/build-ios:/root/build -v ${basedir}/out/ios:/root/out localhost/godot-ios:${img_version} bash build/build.sh 2>&1 | tee ${basedir}/out/logs/ios
|
||||
|
||||
mkdir -p ${basedir}/out/server
|
||||
${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
|
||||
mkdir -p ${basedir}/out/server/x64
|
||||
${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
|
||||
|
||||
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
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
rm -rf releases tmp web
|
||||
4
clean.sh
4
clean.sh
@@ -1,4 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
rm -rf godot*.tar.gz mono-glue out releases tmp web
|
||||
git status
|
||||
@@ -38,7 +38,7 @@ export OSX_HOST=""
|
||||
export OSX_KEY_ID=""
|
||||
# Bundle id for the signed app
|
||||
export OSX_BUNDLE_ID=""
|
||||
# Username/password for Apple's signing APIs (used for notarytool)
|
||||
export APPLE_TEAM=""
|
||||
# Username/password for Apple's signing APIs (used for atltool)
|
||||
export APPLE_ID=""
|
||||
export APPLE_ID_PASSWORD=""
|
||||
|
||||
|
||||
BIN
osslsigncode
Executable file
BIN
osslsigncode
Executable file
Binary file not shown.
Reference in New Issue
Block a user