]> granicus.if.org Git - libexpat/commitdiff
qa.sh: Auto-detect QA_COMPILER
authorSebastian Pipping <sebastian@pipping.org>
Wed, 4 Sep 2019 19:53:47 +0000 (21:53 +0200)
committerSebastian Pipping <sebastian@pipping.org>
Wed, 4 Sep 2019 19:53:47 +0000 (21:53 +0200)
.travis.yml
expat/qa.sh

index a4ef5d06bbf75b86046ab9f7a37c2c8fc3e62a6f..64fff087a3e7ca3d616b3cb7f712d3dc2a31e73b 100644 (file)
@@ -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:
index 6dee54c48a72ffb0a997a17c30f162938ca451c7..011bdf7fa1031b653573d23998e126b9daac2d32 100755 (executable)
@@ -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