OLD | NEW |
1 #!/bin/bash | 1 #!/bin/bash |
2 | 2 |
3 # Build Skia with one of Clang's many sanitizers. | 3 # Build Skia with one of Clang's many sanitizers. |
4 # | 4 # |
5 # $ tools/xsan_build {address,thread,undefined,etc.} [any other flags to pass to
make...] | 5 # $ tools/xsan_build {address,thread,undefined,etc.} [any other flags to pass to
make...] |
6 # | 6 # |
7 # This script assumes the use of Clang >=3.2. | 7 # This script assumes the use of Clang >=3.2. |
8 # | 8 # |
9 # For more information, see: | 9 # For more information, see: |
10 # http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation | 10 # http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation |
11 | 11 |
12 set -e | 12 set -e |
13 set -x | 13 set -x |
14 | 14 |
15 export CC=clang | 15 here=$(cd `dirname $0`; echo `pwd`) |
16 export CXX=clang++ | 16 cores=48 |
| 17 |
| 18 echo "Bootstrapping CMake" |
| 19 pushd $here/../third_party/externals/cmake |
| 20 ./bootstrap --parallel=$cores |
| 21 make -j $cores cmake |
| 22 popd |
| 23 |
| 24 echo "Building Clang" |
| 25 pushd $here/../third_party/externals/llvm |
| 26 mkdir -p out/ |
| 27 cd out/ |
| 28 $here/../third_party/externals/cmake/bin/cmake -DCMAKE_BUILD_TYPE=Release -G Nin
ja .. |
| 29 ninja |
| 30 popd |
| 31 |
| 32 export CC=$here/../third_party/externals/llvm/out/bin/clang |
| 33 export CXX=$here/../third_party/externals/llvm/out/bin/clang++ |
17 $CC --version | 34 $CC --version |
18 | 35 |
19 if [[ "$1" == "memory" ]]; then | 36 if [[ "$1" == "memory" ]]; then |
20 export GYP_DEFINES="skia_gpu=0 skia_no_fontconfig=1 skia_freetype_static=1 $
{GYP_DEFINES}" | 37 export GYP_DEFINES="skia_gpu=0 skia_no_fontconfig=1 skia_freetype_static=1 $
{GYP_DEFINES}" |
21 fi | 38 fi |
22 export GYP_DEFINES="skia_sanitizer=$1 ${GYP_DEFINES}" | 39 export GYP_DEFINES="skia_sanitizer=$1 ${GYP_DEFINES}" |
23 | 40 |
24 shift | 41 shift |
25 make $@ | 42 make $@ |
OLD | NEW |