| #!/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...] |
| # |
| # 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 |
| set -x |
| |
| here=$(cd `dirname $0`; echo `pwd`) |
| cores=48 |
| |
| echo "Bootstrapping CMake" |
| pushd $here/../third_party/externals/cmake |
| ./bootstrap --parallel=$cores |
| make -j $cores cmake |
| popd |
| |
| echo "Building Clang" |
| pushd $here/../third_party/externals/llvm |
| mkdir -p out/ |
| cd out/ |
| $here/../third_party/externals/cmake/bin/cmake -DCMAKE_BUILD_TYPE=Release -G Ninja .. |
| ninja |
| popd |
| |
| export CC=$here/../third_party/externals/llvm/out/bin/clang |
| export CXX=$here/../third_party/externals/llvm/out/bin/clang++ |
| $CC --version |
| |
| if [[ "$1" == "memory" ]]; then |
| export GYP_DEFINES="skia_gpu=0 skia_no_fontconfig=1 skia_freetype_static=1 ${GYP_DEFINES}" |
| fi |
| export GYP_DEFINES="skia_sanitizer=$1 ${GYP_DEFINES}" |
| |
| shift |
| make $@ |