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
4 # found in the LICENSE file.
6 # This script returns the flags that should be passed to clang.
11 THIS_DIR
= os
.path
.abspath(os
.path
.dirname(__file__
))
12 SRC_DIR
= os
.path
.join(THIS_DIR
, '..', '..', '..')
13 CLANG_LIB_PATH
= os
.path
.normpath(os
.path
.join(
14 SRC_DIR
, 'third_party', 'llvm-build', 'Release+Asserts', 'lib'))
16 FLAGS
= '-Xclang -add-plugin -Xclang blink-gc-plugin'
17 PREFIX
= ' -Xclang -plugin-arg-blink-gc-plugin -Xclang '
18 for arg
in sys
.argv
[1:]:
19 if arg
== 'enable-oilpan=1':
20 FLAGS
+= PREFIX
+ 'enable-oilpan'
21 elif arg
== 'dump-graph=1':
22 FLAGS
+= PREFIX
+ 'dump-graph'
23 elif arg
== 'warn-raw-ptr=1':
24 FLAGS
+= PREFIX
+ 'warn-raw-ptr'
25 elif arg
== 'warn-unneeded-finalizer=1':
26 FLAGS
+= PREFIX
+ 'warn-unneeded-finalizer'
27 elif arg
.startswith('custom_clang_lib_path='):
28 CLANG_LIB_PATH
= arg
[len('custom_clang_lib_path='):]
30 if not sys
.platform
in ['win32', 'cygwin']:
31 LIBSUFFIX
= 'dylib' if sys
.platform
== 'darwin' else 'so'
32 FLAGS
= ('-Xclang -load -Xclang "%s/libBlinkGCPlugin.%s" ' + FLAGS
) % \
33 (CLANG_LIB_PATH
, LIBSUFFIX
)