1#!/usr/bin/env python 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. 5 6# This script returns the flags that should be passed to clang. 7 8# TODO(sof): the script can be removed when/once gyp support is retired; 9# unused with gn. 10 11import os 12import sys 13 14THIS_DIR = os.path.abspath(os.path.dirname(__file__)) 15SRC_DIR = os.path.join(THIS_DIR, '..', '..', '..') 16CLANG_LIB_PATH = os.path.normpath(os.path.join( 17 SRC_DIR, 'third_party', 'llvm-build', 'Release+Asserts', 'lib')) 18 19FLAGS = '-Xclang -add-plugin -Xclang blink-gc-plugin' 20PREFIX= ' -Xclang -plugin-arg-blink-gc-plugin -Xclang ' 21 22for arg in sys.argv[1:]: 23 if arg == 'dump-graph=1': 24 FLAGS += PREFIX + 'dump-graph' 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='):] 29 elif arg == 'target_os=ios': 30 sys.stderr.write('error: blink is unsupported on iOS\n') 31 sys.exit(1) 32 33if not sys.platform in ['win32', 'cygwin']: 34 LIBSUFFIX = 'dylib' if sys.platform == 'darwin' else 'so' 35 FLAGS = ('-Xclang -load -Xclang "%s/libBlinkGCPlugin.%s" ' + FLAGS) % \ 36 (CLANG_LIB_PATH, LIBSUFFIX) 37 38print FLAGS 39