mirror of
https://github.com/libexpat/libexpat.git
synced 2025-04-15 09:44:36 +00:00
Merge pull request #337 from libexpat/qa-sh-classify-compiler
qa.sh: Auto-detect QA_COMPILER
This commit is contained in:
commit
0310b5d3fd
2 changed files with 19 additions and 10 deletions
14
.travis.yml
14
.travis.yml
|
@ -17,7 +17,7 @@ env:
|
|||
- 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:
|
||||
|
@ -26,17 +26,17 @@ matrix:
|
|||
- 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:
|
||||
|
|
15
expat/qa.sh
15
expat/qa.sh
|
@ -188,7 +188,7 @@ run() {
|
|||
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
|
||||
|
||||
|
@ -208,8 +208,17 @@ EOF
|
|||
}
|
||||
|
||||
|
||||
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
|
||||
|
@ -242,7 +251,7 @@ Usage:
|
|||
$ ./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
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue