# Copyright 2014 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. { 'targets': [ { 'target_name': 'sanitizer_options', 'type': 'static_library', 'toolsets': ['host', 'target'], 'variables': { # Every target is going to depend on sanitizer_options, so allow # this one to depend on itself. 'prune_self_dependency': 1, # Do not let 'none' targets depend on this one, they don't need to. 'link_dependency': 1, }, 'sources': [ 'sanitizer_options.cc', ], 'include_dirs': [ '../..', ], # Some targets may want to opt-out from ASan, TSan and MSan and link # without the corresponding runtime libraries. We drop the libc++ # dependency and omit the compiler flags to avoid bringing instrumented # code to those targets. 'conditions': [ ['use_custom_libcxx==1', { 'dependencies!': [ '../../buildtools/third_party/libc++/libc++.gyp:libcxx_proxy', ], }], ['tsan==1', { 'sources': [ 'tsan_suppressions.cc', ], }], ['lsan==1', { 'sources': [ 'lsan_suppressions.cc', ], }], ['asan==1', { 'sources': [ 'asan_suppressions.cc', ], }], ], 'cflags/': [ ['exclude', '-fsanitize='], ['exclude', '-fsanitize-'], ], 'direct_dependent_settings': { 'ldflags': [ '-Wl,-u_sanitizer_options_link_helper', ], 'target_conditions': [ ['_type=="executable"', { 'xcode_settings': { 'OTHER_LDFLAGS': [ '-Wl,-u,__sanitizer_options_link_helper', ], }, }], ], }, }, { # Copy llvm-symbolizer to the product dir so that LKGR bots can package it. 'target_name': 'llvm-symbolizer', 'type': 'none', 'variables': { # Path is relative to this GYP file. 'llvm_symbolizer_path': '../../third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer<(EXECUTABLE_SUFFIX)', }, 'conditions': [ ['clang==1', { 'copies': [{ 'destination': '<(PRODUCT_DIR)', 'files': [ '<(llvm_symbolizer_path)', ], }], }], ], }, ], }