| #!/bin/bash |
| |
| # Build Skia with Address Sanitizer. |
| # |
| # Address Sanitizer is available in LLVM (and Clang) 3.1 and above, as well as |
| # GCC 4.8. For now, this script assumes the use of Clang 3.2 or newer, which |
| # uses different flag syntax from 3.1. |
| # |
| # For more information, see: |
| # https://code.google.com/p/address-sanitizer/wiki/AddressSanitizer |
| |
| makeVars="$@" |
| |
| export CC="$(which clang)" |
| export CXX="$(which clang++)" |
| export LINK="$(which clang)" |
| |
| noClang="Couldn't find Clang on this machine!" |
| if [[ -z "${CC}" ]]; then |
| echo "${noClang}" |
| exit 1 |
| fi |
| if [[ -z "${CXX}" ]]; then |
| echo "${noClang}" |
| exit 1 |
| fi |
| if [[ -z "${LINK}" ]]; then |
| echo "${noClang}" |
| exit 1 |
| fi |
| |
| export GYP_DEFINES="skia_asan_build=1 ${GYP_DEFINES}" |
| |
| python gyp_skia |
| if [[ "$?" != "0" ]]; then |
| exit 1 |
| fi |
| |
| make ${makeVars} |
| if [[ "$?" != "0" ]]; then |
| exit 1 |
| fi |