OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2015 The Chromium Authors. All rights reserved. | 2 # Copyright 2015 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 import os | 8 import os |
9 import sys | 9 import sys |
10 | 10 |
11 THIS_DIR = os.path.abspath(os.path.dirname(__file__)) | 11 THIS_DIR = os.path.abspath(os.path.dirname(__file__)) |
12 SRC_DIR = os.path.join(THIS_DIR, '..', '..', '..') | 12 SRC_DIR = os.path.join(THIS_DIR, '..', '..', '..') |
13 CLANG_LIB_PATH = os.path.normpath(os.path.join( | 13 CLANG_LIB_PATH = os.path.normpath(os.path.join( |
14 SRC_DIR, 'third_party', 'llvm-build', 'Release+Asserts', 'lib')) | 14 SRC_DIR, 'third_party', 'llvm-build', 'Release+Asserts', 'lib')) |
15 | 15 |
16 FLAGS = '-Xclang -add-plugin -Xclang blink-gc-plugin' | 16 FLAGS = '-Xclang -add-plugin -Xclang blink-gc-plugin' |
17 PREFIX= ' -Xclang -plugin-arg-blink-gc-plugin -Xclang ' | 17 PREFIX= ' -Xclang -plugin-arg-blink-gc-plugin -Xclang ' |
| 18 |
| 19 warn_raw_pointers = None |
18 for arg in sys.argv[1:]: | 20 for arg in sys.argv[1:]: |
19 if arg == 'enable-oilpan=1': | 21 if arg == 'enable-oilpan=1': |
20 FLAGS += PREFIX + 'enable-oilpan' | 22 FLAGS += PREFIX + 'enable-oilpan' |
| 23 if warn_raw_pointers is None: |
| 24 warn_raw_pointers = True |
21 elif arg == 'dump-graph=1': | 25 elif arg == 'dump-graph=1': |
22 FLAGS += PREFIX + 'dump-graph' | 26 FLAGS += PREFIX + 'dump-graph' |
23 elif arg == 'warn-raw-ptr=1': | 27 elif arg == 'warn-raw-ptr=1': |
24 FLAGS += PREFIX + 'warn-raw-ptr' | 28 warn_raw_pointers = True |
| 29 elif arg == 'warn-raw-ptr=0': |
| 30 warn_raw_pointers = False |
25 elif arg == 'warn-unneeded-finalizer=1': | 31 elif arg == 'warn-unneeded-finalizer=1': |
26 FLAGS += PREFIX + 'warn-unneeded-finalizer' | 32 FLAGS += PREFIX + 'warn-unneeded-finalizer' |
27 elif arg.startswith('custom_clang_lib_path='): | 33 elif arg.startswith('custom_clang_lib_path='): |
28 CLANG_LIB_PATH = arg[len('custom_clang_lib_path='):] | 34 CLANG_LIB_PATH = arg[len('custom_clang_lib_path='):] |
29 | 35 |
| 36 if warn_raw_pointers is True: |
| 37 FLAGS += PREFIX + 'warn-raw-ptr' |
| 38 |
30 if not sys.platform in ['win32', 'cygwin']: | 39 if not sys.platform in ['win32', 'cygwin']: |
31 LIBSUFFIX = 'dylib' if sys.platform == 'darwin' else 'so' | 40 LIBSUFFIX = 'dylib' if sys.platform == 'darwin' else 'so' |
32 FLAGS = ('-Xclang -load -Xclang "%s/libBlinkGCPlugin.%s" ' + FLAGS) % \ | 41 FLAGS = ('-Xclang -load -Xclang "%s/libBlinkGCPlugin.%s" ' + FLAGS) % \ |
33 (CLANG_LIB_PATH, LIBSUFFIX) | 42 (CLANG_LIB_PATH, LIBSUFFIX) |
34 | 43 |
35 print FLAGS | 44 print FLAGS |
OLD | NEW |