OLD | NEW |
---|---|
1 #!/usr/bin/env bash | 1 #!/usr/bin/env bash |
2 # Copyright 2014 The Chromium Authors. All rights reserved. | 2 # Copyright 2014 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 # This script returns the flags that should be passed to clang. | 6 # This script returns the flags that should be passed to clang. |
7 | 7 |
8 SRC_DIR=$(cd $(dirname $0)/../../.. && echo $PWD) | 8 SRC_DIR=$(cd $(dirname $0)/../../.. && echo $PWD) |
9 CLANG_LIB_PATH=$SRC_DIR/third_party/llvm-build/Release+Asserts/lib | 9 CLANG_LIB_PATH=$SRC_DIR/third_party/llvm-build/Release+Asserts/lib |
10 | 10 |
11 if uname -s | grep -q Darwin; then | 11 if uname -s | grep -q Darwin; then |
12 LIBSUFFIX=dylib | 12 LIBSUFFIX=dylib |
13 else | 13 else |
14 LIBSUFFIX=so | 14 LIBSUFFIX=so |
15 fi | 15 fi |
16 | 16 |
17 FLAGS="" | 17 FLAGS="" |
18 PREFIX="-Xclang -plugin-arg-blink-gc-plugin -Xclang" | 18 PREFIX="-Xclang -plugin-arg-blink-gc-plugin -Xclang" |
19 for arg in "$@"; do | 19 for arg in "$@"; do |
20 if [[ "$arg" = "enable-oilpan=1" ]]; then | 20 if [[ "$arg" = "enable-oilpan=1" ]]; then |
21 FLAGS="$FLAGS $PREFIX enable-oilpan" | 21 FLAGS="$FLAGS $PREFIX enable-oilpan" |
22 elif [[ "$arg" = "dump-graph=1" ]]; then | 22 elif [[ "$arg" = "dump-graph=1" ]]; then |
23 FLAGS="$FLAGS $PREFIX dump-graph" | 23 FLAGS="$FLAGS $PREFIX dump-graph" |
24 elif [[ "$arg" = "warn-raw-ptr=1" ]]; then | 24 elif [[ "$arg" = "warn-raw-ptr=1" ]]; then |
25 FLAGS="$FLAGS $PREFIX warn-raw-ptr" | 25 FLAGS="$FLAGS $PREFIX warn-raw-ptr" |
26 elif [[ "$arg" = "warn-unneeded-finalizer=1" ]]; then | 26 elif [[ "$arg" = "warn-unneeded-finalizer=1" ]]; then |
27 FLAGS="$FLAGS $PREFIX warn-unneeded-finalizer" | 27 FLAGS="$FLAGS $PREFIX warn-unneeded-finalizer" |
28 elif [[ "$arg" = custom_clang_lib_path=* ]]; then | |
29 CLANG_LIB_PATH="$(cd ${arg#*=} && echo $PWD)" | |
hans
2015/04/15 09:33:42
Why bash is rusty. What does ${arg#*=} do?
wjywbs
2015/04/15 15:23:29
If arg="custom_clang_lib_path=/tmp/llvm", then "${
hans
2015/04/15 15:36:09
Thanks.
What about quotes? In the "$arg" = test a
wjywbs
2015/04/16 02:20:41
I tried that quoted string was for exact match, an
| |
28 fi | 30 fi |
29 done | 31 done |
30 | 32 |
31 echo -Xclang -load -Xclang $CLANG_LIB_PATH/libBlinkGCPlugin.$LIBSUFFIX \ | 33 echo -Xclang -load -Xclang $CLANG_LIB_PATH/libBlinkGCPlugin.$LIBSUFFIX \ |
32 -Xclang -add-plugin -Xclang blink-gc-plugin $FLAGS | 34 -Xclang -add-plugin -Xclang blink-gc-plugin $FLAGS |
OLD | NEW |