|  | # 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)', | 
|  | ], | 
|  | }], | 
|  | }], | 
|  | ], | 
|  | }, | 
|  | ], | 
|  | } | 
|  |  |