Index: tools/clang/scripts/blink_gc_plugin_flags.py |
diff --git a/tools/clang/scripts/blink_gc_plugin_flags.py b/tools/clang/scripts/blink_gc_plugin_flags.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..5bb28da7197e2b0ab7d1dade5d31c9c2a784c089 |
--- /dev/null |
+++ b/tools/clang/scripts/blink_gc_plugin_flags.py |
@@ -0,0 +1,35 @@ |
+#!/usr/bin/env python |
+# Copyright 2015 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+# This script returns the flags that should be passed to clang. |
+ |
+import os |
+import sys |
+ |
+THIS_DIR = os.path.abspath(os.path.dirname(__file__)) |
+SRC_DIR = os.path.join(THIS_DIR, '..', '..', '..') |
+CLANG_LIB_PATH = os.path.normpath(os.path.join( |
+ SRC_DIR, 'third_party', 'llvm-build', 'Release+Asserts', 'lib')) |
+ |
+FLAGS = '-Xclang -add-plugin -Xclang blink-gc-plugin' |
+PREFIX= ' -Xclang -plugin-arg-blink-gc-plugin -Xclang ' |
+for arg in sys.argv[1:]: |
+ if arg == 'enable-oilpan=1': |
+ FLAGS += PREFIX + 'enable-oilpan' |
+ elif arg == 'dump-graph=1': |
+ FLAGS += PREFIX + 'dump-graph' |
+ elif arg == 'warn-raw-ptr=1': |
+ FLAGS += PREFIX + 'warn-raw-ptr' |
+ elif arg == 'warn-unneeded-finalizer=1': |
+ FLAGS += PREFIX + 'warn-unneeded-finalizer' |
+ elif arg.startswith('custom_clang_lib_path='): |
+ CLANG_LIB_PATH = arg[len('custom_clang_lib_path='):] |
+ |
+if not sys.platform in ['win32', 'cygwin']: |
+ LIBSUFFIX = 'dylib' if sys.platform == 'darwin' else 'so' |
+ FLAGS = ('-Xclang -load -Xclang "%s/libBlinkGCPlugin.%s" ' + FLAGS) % \ |
+ (CLANG_LIB_PATH, LIBSUFFIX) |
+ |
+print FLAGS |