1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00
qTox/.ci-scripts/build-qtox-linux.sh
Anthony Bilinski 8a7461fc16
chore(CI): Run tests in parallel
Faster, with the bonus of catching unexpected dependencies between tests.
2022-03-03 12:09:50 -08:00

76 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# Copyright © 2021 by The qTox Project Contributors
#
# This program is libre software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
set -euo pipefail
usage() {
echo "$0 [--minimal|--full] --build-type [Debug|Release]"
echo "Build script to build/test qtox from a CI environment."
echo "--minimal or --full are requied, --build-type is required."
}
while (( $# > 0 )); do
case $1 in
--minimal) MINIMAL=1 ; shift ;;
--full) MINIMAL=0; shift ;;
--sanitize) SANITIZE=1; shift ;;
--build-type) BUILD_TYPE=$2; shift 2 ;;
--help|-h) usage; exit 1 ;;
*) echo "Unexpected argument $1"; usage; exit 1 ;;
esac
done
if [ -z "${MINIMAL+x}" ]; then
echo "Please build either minimal or full version of qtox"
usage
exit 1
fi
if [ -z "${BUILD_TYPE+x}" ]; then
echo "Please spedify build type"
usage
exit 1
fi
SANITIZE_ARGS=""
if [ ! -z ${SANITIZE+x} ]; then
SANITIZE_ARGS="-DASAN=ON"
fi
SRCDIR=/qtox
export CTEST_OUTPUT_ON_FAILURE=1
if [ $MINIMAL -eq 1 ]; then
cmake "$SRCDIR" \
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
-DSMILEYS=DISABLED \
-DSTRICT_OPTIONS=ON \
-DSPELL_CHECK=OFF \
$SANITIZE_ARGS
else
cmake "$SRCDIR" \
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
-DUPDATE_CHECK=ON \
-DSTRICT_OPTIONS=ON \
-DCODE_COVERAGE=ON \
-DDESKTOP_NOTIFICATIONS=ON \
$SANITIZE_ARGS
fi
cmake --build . -- -j $(nproc)
ctest -j$(nproc)