1# Copyright 2014 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5{ 6 'targets': [ 7 { 8 'target_name': 'sanitizer_options', 9 'type': 'static_library', 10 'toolsets': ['host', 'target'], 11 'variables': { 12 # Every target is going to depend on sanitizer_options, so allow 13 # this one to depend on itself. 14 'prune_self_dependency': 1, 15 # Do not let 'none' targets depend on this one, they don't need to. 16 'link_dependency': 1, 17 }, 18 'sources': [ 19 'sanitizer_options.cc', 20 ], 21 'include_dirs': [ 22 '../..', 23 ], 24 # Some targets may want to opt-out from ASan, TSan and MSan and link 25 # without the corresponding runtime libraries. We drop the libc++ 26 # dependency and omit the compiler flags to avoid bringing instrumented 27 # code to those targets. 28 'conditions': [ 29 ['use_custom_libcxx==1', { 30 'dependencies!': [ 31 '../../buildtools/third_party/libc++/libc++.gyp:libcxx_proxy', 32 ], 33 }], 34 ['tsan==1', { 35 'sources': [ 36 'tsan_suppressions.cc', 37 ], 38 }], 39 ['lsan==1', { 40 'sources': [ 41 'lsan_suppressions.cc', 42 ], 43 }], 44 ['asan==1', { 45 'sources': [ 46 'asan_suppressions.cc', 47 ], 48 }], 49 ], 50 'cflags/': [ 51 ['exclude', '-fsanitize='], 52 ['exclude', '-fsanitize-'], 53 ], 54 'direct_dependent_settings': { 55 'ldflags': [ 56 '-Wl,-u_sanitizer_options_link_helper', 57 ], 58 'target_conditions': [ 59 ['_type=="executable"', { 60 'xcode_settings': { 61 'OTHER_LDFLAGS': [ 62 '-Wl,-u,__sanitizer_options_link_helper', 63 ], 64 }, 65 }], 66 ], 67 }, 68 }, 69 { 70 # Copy llvm-symbolizer to the product dir so that LKGR bots can package it. 71 'target_name': 'llvm-symbolizer', 72 'type': 'none', 73 'variables': { 74 75 # Path is relative to this GYP file. 76 'llvm_symbolizer_path': 77 '../../third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer<(EXECUTABLE_SUFFIX)', 78 }, 79 'conditions': [ 80 ['clang==1', { 81 'copies': [{ 82 'destination': '<(PRODUCT_DIR)', 83 'files': [ 84 '<(llvm_symbolizer_path)', 85 ], 86 }], 87 }], 88 ], 89 }, 90 ], 91} 92 93