mirror of
https://github.com/tildearrow/furnace.git
synced 2024-12-22 08:20:24 +00:00
78 lines
1.3 KiB
Bash
78 lines
1.3 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
COMPILERS_CXX98=`cat<<EOF
|
||
|
gcc-4.4
|
||
|
gcc-4.6
|
||
|
gcc-4.7
|
||
|
gcc-4.8
|
||
|
clang
|
||
|
EOF`
|
||
|
|
||
|
COMPILERS_CXX11=`cat<<EOF
|
||
|
gcc-4.7
|
||
|
gcc-4.8
|
||
|
clang
|
||
|
EOF`
|
||
|
|
||
|
|
||
|
function mkbuild() {
|
||
|
local compiler=$1
|
||
|
local lang=$2
|
||
|
local buildtype=$3
|
||
|
local builddir="$4"
|
||
|
export CC=$compiler
|
||
|
export CXX=`echo $compiler | sed -e 's/clang/clang++/' -e 's/gcc/g++/'`
|
||
|
export CXXFLAGS="-std=$lang"
|
||
|
echo "Creating $builddir"
|
||
|
mkdir $builddir 2>/dev/null
|
||
|
(
|
||
|
cd "$builddir"
|
||
|
cmake -DCMAKE_BUILD_TYPE=$buildtype -DBACKWARD_TESTS=ON ..
|
||
|
)
|
||
|
}
|
||
|
|
||
|
function build() {
|
||
|
local builddir=$1
|
||
|
shift
|
||
|
make -C "$builddir" $@
|
||
|
}
|
||
|
|
||
|
function dotest() {
|
||
|
local builddir=$1
|
||
|
shift
|
||
|
make -C "$builddir" test $@
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
function do_action() {
|
||
|
local lang=$1
|
||
|
local action=$2
|
||
|
shift 2
|
||
|
|
||
|
for compiler in $COMPILERS; do
|
||
|
local builddir="build_${lang}_${compiler}"
|
||
|
|
||
|
if [[ $action == "cmake" ]]; then
|
||
|
buildtype=$1
|
||
|
mkbuild $compiler $lang "$buildtype" "$builddir"
|
||
|
[[ $? != 0 ]] && exit
|
||
|
elif [[ $action == "make" ]]; then
|
||
|
build "$builddir" $@
|
||
|
[[ $? != 0 ]] && exit
|
||
|
elif [[ $action == "test" ]]; then
|
||
|
dotest "$builddir" $@
|
||
|
[[ $? != 0 ]] && exit
|
||
|
elif [[ $action == "clean" ]]; then
|
||
|
rm -r "$builddir"
|
||
|
else
|
||
|
echo "usage: $0 cmake [debug|release|relwithdbg]|make|test|clean"
|
||
|
exit 255
|
||
|
fi
|
||
|
done
|
||
|
}
|
||
|
|
||
|
COMPILERS=$COMPILERS_CXX98
|
||
|
do_action c++98 $@
|
||
|
COMPILERS=$COMPILERS_CXX11
|
||
|
do_action c++11 $@
|