#!/bin/bash

# Build Skia with one of Clang's many sanitizers.
#
# $ tools/xsan_build {address,thread,undefined,etc.} [any other flags to pass to make/ninja...]
#
# This script assumes the use of Clang >=3.2.
#
# For more information, see:
#   http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation

set -e

sanitizer=$1
shift
args="$@"

export CC="$(which clang)"
export CXX="$(which clang++)"
export LINK="$(which clang)"

if [[ -z "${CC}" ]] || [[ -z "${CXX}" ]] || [[ -z "${LINK}" ]]; then
  echo "Couldn't find Clang on this machine!"
  exit 1
fi

export GYP_DEFINES="skia_sanitizer=$sanitizer ${GYP_DEFINES}"

./gyp_skia
if [[ $GYP_GENERATORS == "ninja" ]]; then
    ninja ${args}
else
    make ${args}
fi