#!/bin/sh

# SPDX-FileCopyrightText: 2014 Boris Pek <tehnick-8@yandex.ru>
# SPDX-FileCopyrightText: 2014 Jeremy Lainé <jeremy.laine@m4x.org>
#
# SPDX-License-Identifier: CC0-1.0

set -e

HOST_SYSTEM=$(uname -s)
CMAKE_ARGS="-DBUILD_TESTS:BOOL=True"

case "$CONFIG" in
full*)
    CMAKE_ARGS="-DBUILD_DOCUMENTATION:BOOL=True -DBUILD_EXAMPLES:BOOL=True -DWITH_GSTREAMER:BOOL=True"

    # Enable OMEMO
    if [ $HOST_SYSTEM = "Linux" ]; then
        CMAKE_ARGS="$CMAKE_ARGS -DBUILD_OMEMO=ON"
    fi
    ;;
*debug*)
    CMAKE_ARGS="$CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=Debug -DBUILD_INTERNAL_TESTS:BOOL=True"
    ;;
esac

# build with code coverage
if [ "$CONFIG" = "full-debug" ]; then
    export CXXFLAGS="-fprofile-arcs -ftest-coverage"
fi

# Skip currently broken call manager test on macOS
if [ $HOST_SYSTEM = "Darwin" ]; then
    export QXMPP_TESTS_SKIP_CALL_MANAGER=1
fi

# compile
mkdir build
cd build
cmake .. $CMAKE_ARGS

if [ $HOST_SYSTEM = "Darwin" ]; then
    make -k -j$(sysctl -n hw.logicalcpu)
else
    make -k -j$(nproc)
fi

# run tests
make test ARGS="--rerun-failed --output-on-failure"
