Home | History | Annotate | Download | only in tools
      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