From 09b605f7b923b8d443c24ee078a9866b829b7165 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Tue, 12 Nov 2019 21:16:16 +0100 Subject: [PATCH] Make number of build cores configurable in config.sh --- build-android/build.sh | 2 +- build-ios/build.sh | 2 +- build-javascript/build.sh | 2 +- build-linux/build.sh | 2 +- build-macosx/build.sh | 2 +- build-mono-glue/build.sh | 2 +- build-server/build.sh | 2 +- build-windows/build.sh | 2 +- build.sh | 28 +++++++++++++++++----------- config.sh.in | 3 +++ 10 files changed, 28 insertions(+), 19 deletions(-) diff --git a/build-android/build.sh b/build-android/build.sh index 07b9a4d..67f72dd 100755 --- a/build-android/build.sh +++ b/build-android/build.sh @@ -3,7 +3,7 @@ set -e export BUILD_NAME=official -export SCONS="scons -j16 verbose=yes warnings=no progress=no" +export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no" export OPTIONS="builtin_libpng=yes builtin_openssl=yes builtin_zlib=yes debug_symbols=no use_static_cpp=yes use_lto=yes" export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes" export TERM=xterm diff --git a/build-ios/build.sh b/build-ios/build.sh index 1ce8780..30a66fc 100755 --- a/build-ios/build.sh +++ b/build-ios/build.sh @@ -3,7 +3,7 @@ set -e export BUILD_NAME=official -export SCONS="scons -j16 verbose=yes warnings=no progress=no" +export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no" export IOS_SDK="11.2" export OPTIONS="osxcross_sdk=darwin15 builtin_libpng=yes builtin_openssl=yes builtin_zlib=yes debug_symbols=no use_static_cpp=yes" export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes" diff --git a/build-javascript/build.sh b/build-javascript/build.sh index 3c82352..63b451a 100755 --- a/build-javascript/build.sh +++ b/build-javascript/build.sh @@ -3,7 +3,7 @@ set -e export BUILD_NAME=official -export SCONS="scons -j16 verbose=yes warnings=no progress=no" +export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no" export OPTIONS="builtin_libpng=yes builtin_openssl=yes builtin_zlib=yes debug_symbols=no use_static_cpp=yes use_lto=yes" export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes" export TERM=xterm diff --git a/build-linux/build.sh b/build-linux/build.sh index 5feb479..07bc401 100755 --- a/build-linux/build.sh +++ b/build-linux/build.sh @@ -3,7 +3,7 @@ set -e export BUILD_NAME=official -export SCONS="scons -j16 verbose=yes warnings=no progress=no" +export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no" export OPTIONS="builtin_libpng=yes builtin_openssl=yes builtin_zlib=yes debug_symbols=no use_static_cpp=yes use_lto=yes" export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes" export TERM=xterm diff --git a/build-macosx/build.sh b/build-macosx/build.sh index bbab802..fb2c129 100755 --- a/build-macosx/build.sh +++ b/build-macosx/build.sh @@ -3,7 +3,7 @@ set -e export BUILD_NAME=official -export SCONS="scons -j16 verbose=yes warnings=no progress=no" +export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no" export OPTIONS="osxcross_sdk=darwin17 builtin_libpng=yes builtin_openssl=yes builtin_zlib=yes debug_symbols=no use_static_cpp=yes use_lto=yes" export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes" export TERM=xterm diff --git a/build-mono-glue/build.sh b/build-mono-glue/build.sh index a602e9c..7f13122 100755 --- a/build-mono-glue/build.sh +++ b/build-mono-glue/build.sh @@ -4,7 +4,7 @@ set -e export BUILD_NAME=official export OPTIONS="builtin_libpng=yes builtin_openssl=yes builtin_zlib=yes debug_symbols=no" -export SCONS="scons -j16 verbose=yes warnings=no progress=no" +export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no" export TERM=xterm export MONO32_PREFIX=/usr export MONO64_PREFIX=/usr diff --git a/build-server/build.sh b/build-server/build.sh index 2688ed0..751be4e 100755 --- a/build-server/build.sh +++ b/build-server/build.sh @@ -3,7 +3,7 @@ set -e export BUILD_NAME=official -export SCONS="scons -j16 verbose=yes warnings=no progress=no" +export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no" export OPTIONS="builtin_libpng=yes builtin_openssl=yes builtin_zlib=yes debug_symbols=no use_static_cpp=yes use_lto=yes" export MONO_OPTIONS="module_mono_enabled=yes mono_static=yes copy_mono_root=yes" export TERM=xterm diff --git a/build-windows/build.sh b/build-windows/build.sh index 50afcee..ee25c8b 100755 --- a/build-windows/build.sh +++ b/build-windows/build.sh @@ -3,7 +3,7 @@ set -e export BUILD_NAME=official -export SCONS="scons -j16 verbose=yes warnings=no progress=no" +export SCONS="scons -j${NUM_CORES} verbose=yes warnings=no progress=no" export OPTIONS="builtin_libpng=yes builtin_openssl=yes builtin_zlib=yes debug_symbols=no use_static_cpp=yes use_lto=yes" export OPTIONS_MONO="module_mono_enabled=yes mono_static=yes" export TERM=xterm diff --git a/build.sh b/build.sh index 4b3aa98..5e4a431 100755 --- a/build.sh +++ b/build.sh @@ -4,13 +4,17 @@ set -e OPTIND=1 -# For default registry. +# For default registry and number of cores. if [ ! -e config.sh ]; then echo "No config.sh, copying default values from config.sh.in." cp config.sh.in config.sh fi source ./config.sh +if [ -z "${NUM_CORES}" ]; then + export NUM_CORES=16 +fi + registry="${REGISTRY}" username="" password="" @@ -123,35 +127,37 @@ export basedir="$(pwd)" mkdir -p ${basedir}/out mkdir -p ${basedir}/out/logs +export podman_run="${podman} run -it --rm --env NUM_CORES -v ${basedir}/godot.tar.gz:/root/godot.tar.gz -v ${basedir}/mono-glue:/root/mono-glue -w /root/" + mkdir -p ${basedir}/mono-glue -${podman} run -it --rm -v ${basedir}/godot.tar.gz:/root/godot.tar.gz -v ${basedir}/build-mono-glue:/root/build -v ${basedir}/mono-glue:/root/mono-glue -w /root/ ${registry}/godot/mono-glue:latest bash build/build.sh 2>&1 | tee ${basedir}/out/logs/mono-glue +${podman_run} -v ${basedir}/build-mono-glue:/root/build ${registry}/godot/mono-glue:latest bash build/build.sh 2>&1 | tee ${basedir}/out/logs/mono-glue mkdir -p ${basedir}/out/windows -${podman} run -it --rm -v ${basedir}/godot.tar.gz:/root/godot.tar.gz -v ${basedir}/build-windows:/root/build -v ${basedir}/mono-glue:/root/mono-glue -v ${basedir}/out/windows:/root/out -w /root/ ${registry}/godot/windows:latest 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 ${registry}/godot/windows:latest bash build/build.sh 2>&1 | tee ${basedir}/out/logs/windows mkdir -p ${basedir}/out/linux/x64 -${podman} run -it --rm -v ${basedir}/godot.tar.gz:/root/godot.tar.gz -v ${basedir}/build-linux:/root/build -v ${basedir}/mono-glue:/root/mono-glue -v ${basedir}/out/linux/x64:/root/out -w /root/ ${registry}/godot/ubuntu-64:latest bash build/build.sh 2>&1 | tee ${basedir}/out/logs/linux64 +${podman_run} -v ${basedir}/build-linux:/root/build -v ${basedir}/out/linux/x64:/root/out ${registry}/godot/ubuntu-64:latest bash build/build.sh 2>&1 | tee ${basedir}/out/logs/linux64 mkdir -p ${basedir}/out/linux/x86 -${podman} run -it --rm -v ${basedir}/godot.tar.gz:/root/godot.tar.gz -v ${basedir}/build-linux:/root/build -v ${basedir}/mono-glue:/root/mono-glue -v ${basedir}/out/linux/x86:/root/out -w /root/ ${registry}/godot/ubuntu-32:latest bash build/build.sh 2>&1 | tee ${basedir}/out/logs/linux32 +${podman_run} -v ${basedir}/build-linux:/root/build -v ${basedir}/out/linux/x86:/root/out ${registry}/godot/ubuntu-32:latest bash build/build.sh 2>&1 | tee ${basedir}/out/logs/linux32 mkdir -p ${basedir}/out/server/x64 -${podman} run -it --rm -v ${basedir}/godot.tar.gz:/root/godot.tar.gz -v ${basedir}/build-server:/root/build -v ${basedir}/mono-glue:/root/mono-glue -v ${basedir}/out/server/x64:/root/out -w /root/ ${registry}/godot/ubuntu-64:latest 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 ${registry}/godot/ubuntu-64:latest bash build/build.sh 2>&1 | tee ${basedir}/out/logs/server mkdir -p ${basedir}/out/javascript -${podman} run -it --rm -v ${basedir}/godot.tar.gz:/root/godot.tar.gz -v ${basedir}/build-javascript:/root/build -v ${basedir}/mono-glue:/root/mono-glue -v ${basedir}/out/javascript:/root/out -w /root/ ${registry}/godot/javascript:latest 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 ${registry}/godot/javascript:latest bash build/build.sh 2>&1 | tee ${basedir}/out/logs/javascript mkdir -p ${basedir}/out/macosx/x64 -${podman} run -it --rm -v ${basedir}/godot.tar.gz:/root/godot.tar.gz -v ${basedir}/build-macosx:/root/build -v ${basedir}/mono-glue:/root/mono-glue -v ${basedir}/out/macosx/x64:/root/out -w /root/ ${registry}/godot-private/macosx:latest bash build/build.sh 2>&1 | tee ${basedir}/out/logs/macosx +${podman_run} -v ${basedir}/build-macosx:/root/build -v ${basedir}/out/macosx/x64:/root/out ${registry}/godot-private/macosx:latest bash build/build.sh 2>&1 | tee ${basedir}/out/logs/macosx mkdir -p ${basedir}/out/android -${podman} run -it --rm -v ${basedir}/godot.tar.gz:/root/godot.tar.gz -v ${basedir}/build-android:/root/build -v ${basedir}/out/android:/root/out -w /root/ ${registry}/godot-private/android:latest 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 ${registry}/godot-private/android:latest bash build/build.sh 2>&1 | tee ${basedir}/out/logs/android mkdir -p ${basedir}/out/ios -${podman} run -it --rm -v ${basedir}/godot.tar.gz:/root/godot.tar.gz -v ${basedir}/build-ios:/root/build -v ${basedir}/out/ios:/root/out -w /root/ ${registry}/godot-private/ios:latest 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 ${registry}/godot-private/ios:latest bash build/build.sh 2>&1 | tee ${basedir}/out/logs/ios mkdir -p ${basedir}/out/uwp -${podman} run --ulimit nofile=32768:32768 -it --rm -v ${basedir}/godot.tar.gz:/root/godot.tar.gz -v ${basedir}/build-uwp:/root/build -v ${basedir}/out/uwp:/root/out -w /root/ ${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 if [ ! -z "$SUDO_UID" ]; then chown -R "${SUDO_UID}":"${SUDO_GID}" ${basedir}/out diff --git a/config.sh.in b/config.sh.in index a4bfe8d..c5b560b 100644 --- a/config.sh.in +++ b/config.sh.in @@ -11,6 +11,9 @@ # https://github.com/godotengine/build-containers export REGISTRY="registry.prehensile-tales.com" +# Default number of parallel cores for each build. +export NUM_CORES=16 + # Set up your own signing keystore and relevant details below. # If you do not fill all SIGN_* fields, signing will be skipped.