- MODE=cmake-oos
- MODE=cppcheck
- MODE=distcheck
- - MODE=qa-sh QA_COMPILER=clang CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address
+ - MODE=qa-sh CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address
matrix:
include:
- os: linux
env: MODE=cmake-oos CMAKE_ARGS="-DEXPAT_ATTR_INFO=ON -DEXPAT_BUILD_FUZZERS=ON -DCMAKE_C_FLAGS=-fsanitize=address -DCMAKE_CXX_FLAGS=-fsanitize=address -DCMAKE_EXE_LINKER_FLAGS=-fsanitize=address -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++"
- os: linux
- env: MODE=qa-sh QA_COMPILER=clang CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address CMAKE_ARGS=-DEXPAT_ATTR_INFO=ON
+ env: MODE=qa-sh CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address CMAKE_ARGS=-DEXPAT_ATTR_INFO=ON
- os: linux
- env: MODE=qa-sh QA_COMPILER=clang CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=memory
+ env: MODE=qa-sh CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=memory
- os: linux
- env: MODE=qa-sh QA_COMPILER=clang CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=undefined
+ env: MODE=qa-sh CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=undefined
- os: linux
- env: MODE=qa-sh QA_COMPILER=gcc CC=gcc CXX=g++ LD=ld QA_PROCESSOR=gcov
+ env: MODE=qa-sh CC=gcc CXX=g++ LD=ld QA_PROCESSOR=gcov
- os: linux
- env: MODE=qa-sh QA_COMPILER=gcc CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ LD=i686-w64-mingw32-ld QA_PROCESSOR=gcov CMAKE_ARGS="-DCMAKE_SYSTEM_NAME=Windows -DWIN32=ON -DMINGW=ON -DEXPAT_ATTR_INFO=ON"
+ env: MODE=qa-sh CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ LD=i686-w64-mingw32-ld QA_PROCESSOR=gcov CMAKE_ARGS="-DCMAKE_SYSTEM_NAME=Windows -DWIN32=ON -DMINGW=ON -DEXPAT_ATTR_INFO=ON"
- os: linux
- env: MODE=qa-sh QA_COMPILER=gcc CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ LD=i686-w64-mingw32-ld QA_PROCESSOR=gcov CMAKE_ARGS="-DCMAKE_SYSTEM_NAME=Windows -DWIN32=ON -DMINGW=ON -DEXPAT_ATTR_INFO=ON -DEXPAT_UNICODE=ON -DEXPAT_UNICODE_WCHAR_T=ON"
+ env: MODE=qa-sh CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ LD=i686-w64-mingw32-ld QA_PROCESSOR=gcov CMAKE_ARGS="-DCMAKE_SYSTEM_NAME=Windows -DWIN32=ON -DMINGW=ON -DEXPAT_ATTR_INFO=ON -DEXPAT_UNICODE=ON -DEXPAT_UNICODE_WCHAR_T=ON"
addons:
homebrew:
dump_config() {
cat <<EOF
Configuration:
- QA_COMPILER=${QA_COMPILER}
+ QA_COMPILER=${QA_COMPILER} # auto-detected from \$CC and \$CXX
QA_PROCESSOR=${QA_PROCESSOR} # GCC only
QA_SANITIZER=${QA_SANITIZER} # Clang only
}
+classify_compiler() {
+ local i
+ for i in "${CC:-}" "${CXX:-}"; do
+ [[ "$i" =~ clang ]] && { echo clang ; return ; }
+ done
+ echo gcc
+}
+
+
process_config() {
- case "${QA_COMPILER:=gcc}" in
+ case "${QA_COMPILER:=$(classify_compiler)}" in
clang|gcc) ;;
*) usage; exit 1 ;;
esac
$ ./qa.sh [ARG ..]
Environment variables
- QA_COMPILER=(clang|gcc) # default: gcc
+ QA_COMPILER=(clang|gcc) # default: auto-detected
QA_PROCESSOR=(egypt|gcov) # default: gcov
QA_SANITIZER=(address|memory|undefined) # default: address