summarylogtreecommitdiffstats
path: root/build_linux64.bash
diff options
context:
space:
mode:
Diffstat (limited to 'build_linux64.bash')
-rwxr-xr-xbuild_linux64.bash41
1 files changed, 41 insertions, 0 deletions
diff --git a/build_linux64.bash b/build_linux64.bash
new file mode 100755
index 000000000000..c79232616e00
--- /dev/null
+++ b/build_linux64.bash
@@ -0,0 +1,41 @@
+ virtualenv ".venv" -p python3
+ source ".venv/bin/activate"
+ pip install --upgrade certifi
+ if command -v autobuild; then
+ abver="$(autobuild --version)"
+ echo "Found ${abver}"
+ if [ "${abver}" = "autobuild 2.1.0" ]; then
+ echo "Reinstalling autobuild to work around some bugs"
+ pip3 uninstall --yes autobuild
+ pip3 install autobuild -i https://git.alchemyviewer.org/api/v4/projects/54/packages/pypi/simple --extra-index-url https://pypi.org/simple
+ fi
+ else
+ pip3 install autobuild -i https://git.alchemyviewer.org/api/v4/projects/54/packages/pypi/simple --extra-index-url https://pypi.org/simple
+ fi
+ # we have a lot of files, relax ulimit to help performance
+ ulimit -n 20000
+ # shellcheck disable=SC2153
+ autobuild configure -A 64 -c ReleaseOS -- -DLL_TESTS:BOOL=OFF -DDISABLE_FATAL_WARNINGS=ON -DUSE_LTO:BOOL="$(grep -cq '[^!]lto' <<< "${1}" && echo 'ON' || echo 'OFF')" -DVIEWER_CHANNEL="Alchemy Test"
+ cd "build-linux-64" || exit 1
+ jobcount=$(nproc)
+ if [[ ${jobcount} -gt 1 ]]; then
+ # The viewer requires an average of 4GB of memory per CPU core to sucessfully link
+ mempercorekb=$((4 * 1048576))
+ requiredmemorykb=$(($(nproc) * mempercorekb))
+ availablememorykb=$(grep MemTotal /proc/meminfo | tr -s ' ' | cut -d ' ' -f 2)
+ freememkb="$(grep MemFree /proc/meminfo | tr -s ' ' | cut -d ' ' -f 2)"
+ if [[ ${requiredmemorykb} -gt ${availablememorykb} ]]; then
+ jobs=0
+ until [[ $(((jobs + 1) * mempercorekb)) -gt ${availablememorykb} ]]; do
+ jobs=$((jobs+1))
+ done
+ #((jobs--))
+ jobcount=${jobs}
+ elif [[ ${jobcount} -le 8 ]]; then
+ jobcount=$((jobcount - 1))
+ else
+ jobcount=$((jobcount - 2))
+ fi
+ fi
+ echo "Building with ${jobcount} jobs (adjusted)"
+ time ninja -l"$(nproc)" -j${jobcount}