-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild.sh
executable file
·84 lines (77 loc) · 1.71 KB
/
build.sh
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
74
75
76
77
78
79
80
81
82
83
84
#!/usr/bin/env bash
fail() {
exit_code=$1
shift
echo Error: $@
exit ${exit_code}
}
usage() {
echo "usage: $(basename $0) [-c] -[C] [-v]"
echo " -c clean and cmake"
echo " -C cmake"
echo " -v verbose"
echo " -h help"
}
taillog() {
if [ -n "$1" ]; then
echo
echo --------------------------------------------------------------------------------
echo LOGs
echo --------------------------------------------------------------------------------
echo
awk -f ../buildscripts/test.awk Testing/Temporary/LastTest.log
echo
echo --------------------------------------------------------------------------------
echo Following Tests failed.
echo --------------------------------------------------------------------------------
cat Testing/Temporary/LastTestsFailed.log
else
echo Error occured rerun with -v to show log
fi
exit 1
}
main() {
CLEAN=""
CMAKE=""
VERBOSE=""
while [ -n "$1" ]; do
if [ "$1" == "-c" ]; then
echo "got -c"
CLEAN=Y
CMAKE=Y
shift
elif [ "$1" == "-C" ]; then
echo "got -C"
CMAKE=Y
shift
elif [ "$1" == "-v" ]; then
echo "got -v"
VERBOSE=Y
shift
elif [ "$1" == "-h" ]; then
usage
exit 0
else
echo Error $1 unknown
usage
exit 1
fi
done
cd $(dirname $0)
if [ -n "${CLEAN}" ]; then
echo WARNING: running clean build
rm -rf build
fi
[ -e build ] || {
mkdir build
CMAKE=y
}
cd build
if [ -n "${CMAKE}" ]; then
echo INFO: rerunning cmake
cmake .. || fail 1 CMAKE FAILED
fi
cmake --build . --target=all || fail 2 Build failed
cmake --build . --target=test || taillog $VERBOSE
}
main $@