1 #!/bin/bash 2 3 # Build Skia with one of Clang's many sanitizers. 4 # 5 # $ tools/xsan_build {address,thread,undefined,etc.} [any other flags to pass to make/ninja...] 6 # 7 # This script assumes the use of Clang >=3.2. 8 # 9 # For more information, see: 10 # http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation 11 12 set -e 13 14 sanitizer=$1 15 shift 16 args="$@" 17 18 export CC="$(which clang)" 19 export CXX="$(which clang++)" 20 export LINK="$(which clang)" 21 22 if [[ -z "${CC}" ]] || [[ -z "${CXX}" ]] || [[ -z "${LINK}" ]]; then 23 echo "Couldn't find Clang on this machine!" 24 exit 1 25 fi 26 27 export GYP_DEFINES="skia_sanitizer=$sanitizer ${GYP_DEFINES}" 28 29 ./gyp_skia 30 if [[ $GYP_GENERATORS == "ninja" ]]; then 31 ninja ${args} 32 else 33 make ${args} 34 fi 35