56 lines
1.6 KiB
Plaintext
56 lines
1.6 KiB
Plaintext
|
#!/bin/bash
|
||
|
# Copyright (C) 2018-2023 nurupo
|
||
|
|
||
|
# Toxcore building
|
||
|
|
||
|
set -eux
|
||
|
|
||
|
cd .. # /work
|
||
|
. cmake-alpine-run.sh
|
||
|
|
||
|
# === Get VM ready to build the code ===
|
||
|
|
||
|
start_vm
|
||
|
|
||
|
RUN apk add cmake g++ ninja
|
||
|
|
||
|
mv c-toxcore /
|
||
|
|
||
|
# Copy over toxcore code from host to qemu
|
||
|
scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -P "$SSH_PORT" -r /c-toxcore root@localhost:~
|
||
|
|
||
|
cd /c-toxcore
|
||
|
. ".github/scripts/flags-gcc.sh"
|
||
|
|
||
|
# Make compilation error on a warning
|
||
|
add_flag -Werror
|
||
|
|
||
|
# - disabling toxav because vpx doesn't work on s390x.
|
||
|
# - disabling bootstrap daemons because we don't need them for testing (saving time).
|
||
|
# - disabling shared libraries because it saves a lot of time on building PIC objects.
|
||
|
# - enable unity build because it saves a lot of time as well (fewer objects to build).
|
||
|
RUN "cmake -B_build -Hc-toxcore -GNinja \
|
||
|
-DCMAKE_C_FLAGS='$C_FLAGS' \
|
||
|
-DCMAKE_CXX_FLAGS='$CXX_FLAGS' \
|
||
|
-DCMAKE_EXE_LINKER_FLAGS='$LD_FLAGS' \
|
||
|
-DCMAKE_SHARED_LINKER_FLAGS='$LD_FLAGS' \
|
||
|
-DCMAKE_INSTALL_PREFIX:PATH='_install' \
|
||
|
-DCMAKE_UNITY_BUILD=ON \
|
||
|
-DMIN_LOGGER_LEVEL=TRACE \
|
||
|
-DNON_HERMETIC_TESTS=ON \
|
||
|
-DENABLE_SHARED=OFF \
|
||
|
-DBUILD_TOXAV=OFF \
|
||
|
-DDHT_BOOTSTRAP=OFF \
|
||
|
-DBOOTSTRAP_DAEMON=OFF \
|
||
|
-DSTRICT_ABI=ON \
|
||
|
-DTEST_TIMEOUT_SECONDS=90 \
|
||
|
-DUSE_IPV6=OFF \
|
||
|
-DAUTOTEST=ON"
|
||
|
|
||
|
RUN 'cmake --build _build --parallel 2 --target install -- -k 0'
|
||
|
RUN 'cd _build && ctest -j50 --output-on-failure --rerun-failed --repeat until-pass:1 --timeout 90 || true' &
|
||
|
|
||
|
# Give the tests 5 minutes to run. Sometimes, the per-test timeout doesn't
|
||
|
# work, so we put a global timeout here for everything.
|
||
|
sleep 300
|