aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/build-preset.sh
blob: 66df7fb740606317751ceceac147bc0c4dbaef2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#! /bin/sh

sdir=`dirname $(readlink -f $0)`
rootdir=`dirname $sdir`
bname=`basename $0 .sh`

. $rootdir/jaulib/scripts/setup-machine-arch.sh

tripleid="$os_name-$archabi"

if [ ! -z "$1" ] ; then
    preset_name=$1
    shift 1
else
    echo "ERROR: No preset passed as 1st argument, use one of:"
    cmake --list-presets
    return 1
fi

logfile=$rootdir/${bname}-${preset_name}-${tripleid}.log
rm -f $logfile

CPU_COUNT=`getconf _NPROCESSORS_ONLN`

# run as root 'dpkg-reconfigure locales' enable 'en_US.UTF-8'
# perhaps run as root 'update-locale LC_MEASUREMENT=en_US.UTF-8 LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8'
export LC_MEASUREMENT=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

buildit() {
    echo rootdir $rootdir
    echo logfile $logfile
    echo CPU_COUNT $CPU_COUNT

    dist_dir="dist/${preset_name}-${tripleid}"
    build_dir="build/${preset_name}"
    echo dist_dir $dist_dir
    echo build_dir $build_dir

    if [ -x /usr/bin/time ] ; then
        time_cmd="time"
        echo "time command available: ${time_cmd}"
    else 
        time_cmd=""
        echo "time command not available"
    fi

    cd $rootdir
    rm -rf $dist_dir dist/${preset_name}
    rm -rf $build_dir
    mkdir -p $build_dir

    cmake --preset ${preset_name}

    ${time_cmd} cmake --build --preset ${preset_name} --target install --parallel
    if [ $? -eq 0 ] ; then
        echo "BUILD SUCCESS $bname, preset $preset_name, $tripleid"
        ${time_cmd} cmake --build --preset ${preset_name} --target test
        if [ $? -eq 0 ] ; then
            echo "TEST SUCCESS $bname, preset $preset_name, $tripleid"
            return 0
        else
            echo "TEST FAILURE $bname, preset $preset_name, $tripleid"
            return 1
        fi
    else
        echo "BUILD FAILURE $bname, preset $preset_name, $tripleid"
        return 1
    fi
}

buildit 2>&1 | tee $logfile