TYPE3
[iec.git] / src / type3_AndroidCloud / anbox-master / external / backward-cpp / builds.sh
1 #!/bin/bash
2
3 COMPILERS_CXX98=`cat<<EOF
4 gcc-4.4
5 gcc-4.6
6 gcc-4.7
7 gcc-4.8
8 clang
9 EOF`
10
11 COMPILERS_CXX11=`cat<<EOF
12 gcc-4.7
13 gcc-4.8
14 clang
15 EOF`
16
17
18 function mkbuild() {
19         local compiler=$1
20         local lang=$2
21         local buildtype=$3
22         local builddir="$4"
23         export CC=$compiler
24         export CXX=`echo $compiler | sed -e 's/clang/clang++/' -e 's/gcc/g++/'`
25         export CXXFLAGS="-std=$lang"
26         echo "Creating $builddir"
27         mkdir $builddir 2>/dev/null
28         (
29                 cd "$builddir"
30                 cmake -DCMAKE_BUILD_TYPE=$buildtype -DBACKWARD_TESTS=ON ..
31         )
32 }
33
34 function build() {
35         local builddir=$1
36         shift
37         make -C "$builddir" $@
38 }
39
40 function dotest() {
41         local builddir=$1
42         shift
43         make -C "$builddir" test $@
44         return 0
45 }
46
47 function do_action() {
48         local lang=$1
49         local action=$2
50         shift 2
51
52         for compiler in $COMPILERS; do
53                 local builddir="build_${lang}_${compiler}"
54
55                 if [[ $action == "cmake" ]]; then
56                         buildtype=$1
57                         mkbuild $compiler $lang "$buildtype" "$builddir"
58                         [[ $? != 0 ]] && exit
59                 elif [[ $action == "make" ]]; then
60                         build "$builddir" $@
61                         [[ $? != 0 ]] && exit
62                 elif [[ $action == "test" ]]; then
63                         dotest "$builddir" $@
64                         [[ $? != 0 ]] && exit
65                 elif [[ $action == "clean" ]]; then
66                         rm -r "$builddir"
67                 else
68                         echo "usage: $0 cmake [debug|release|relwithdbg]|make|test|clean"
69                         exit 255
70                 fi
71         done
72 }
73
74 COMPILERS=$COMPILERS_CXX98
75 do_action c++98 $@
76 COMPILERS=$COMPILERS_CXX11
77 do_action c++11 $@