1#/bin/bash
2set -e
3
4ROOTDIR="$(cd -P "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd )"
5
6function buildAndTest() {
7    if [[ ${1:0:1} == "#" ]]
8    then
9        echo "commented out, doing nothing: '$*'"
10        return
11    fi
12
13    if [[ $# -lt 3 ]]
14    then
15        echo "not correct number of args, doing nothing: '$*'"
16        return
17    fi
18
19    #NICE="nice -n20"
20    NICE="schedtool -5 -e"
21
22    ORIGINDIR=$(pwd)
23
24    COMPILER=$1
25    CXX_STANDARD=$2
26    SANITIZER=$3
27    CXXFLAGS=$4
28
29    DIRNAME=${COMPILER}_cxx${CXX_STANDARD}_sanitizer${SANITIZER}_${CXXFLAGS}
30
31    mkdir -p ${DIRNAME}
32    rm -f ${DIRNAME}/CMakeCache.txt
33    cd ${DIRNAME}
34
35    CXX=$(which ${COMPILER}) cmake -G Ninja -DCMAKE_CXX_FLAGS=${CXXFLAGS} -DCMAKE_BUILD_TYPE=Debug -DRH_cxx_standard=${CXX_STANDARD} -DRH_sanitizer=${SANITIZER} ${ROOTDIR}
36    ${NICE} cmake --build . -- -j 3
37    ${NICE} ./rh -ns -ts=show
38    ${NICE} ./rh -ns -ts=nanobench
39    ${NICE} ./rh
40
41    cd ${ORIGINDIR}
42}
43
44buildAndTest $*
45