1 # Copyright 2014 The LibYuv Project Authors. All rights reserved. 2 # 3 # Use of this source code is governed by a BSD-style license 4 # that can be found in the LICENSE file in the root of the source 5 # tree. An additional intellectual property rights grant can be found 6 # in the file PATENTS. All contributing project authors may 7 # be found in the AUTHORS file in the root of the source tree. 8 9 # This is a similar target to the one in Chromium's base.gyp. It's needed to get 10 # the same sanitizer settings as Chromium uses (i.e. ASan, LSan, TSan...). 11 { 12 'targets': [ 13 { 14 'target_name': 'sanitizer_options', 15 'type': 'static_library', 16 'toolsets': ['host', 'target'], 17 'variables': { 18 # Every target is going to depend on sanitizer_options, so allow 19 # this one to depend on itself. 20 'prune_self_dependency': 1, 21 # Do not let 'none' targets depend on this one, they don't need to. 22 'link_dependency': 1, 23 }, 24 'sources': [ 25 'sanitizer_options/sanitizer_options.cc', 26 ], 27 'include_dirs': [ 28 '<(DEPTH)', 29 ], 30 # Some targets may want to opt-out from ASan, TSan and MSan and link 31 # without the corresponding runtime libraries. We drop the libc++ 32 # dependency and omit the compiler flags to avoid bringing instrumented 33 # code to those targets. 34 'conditions': [ 35 ['use_custom_libcxx==1', { 36 'dependencies!': [ 37 '<(DEPTH)/third_party/libc++/libc++.gyp:libcxx_proxy', 38 ], 39 }], 40 ['tsan==1', { 41 'sources': [ 42 'tsan_suppressions/tsan_suppressions.cc', 43 ], 44 }], 45 ], 46 'cflags!': [ 47 '-fsanitize=address', 48 '-fsanitize=thread', 49 '-fsanitize=memory', 50 '-fsanitize-memory-track-origins', 51 ], 52 'direct_dependent_settings': { 53 'ldflags': [ 54 '-Wl,-u_sanitizer_options_link_helper', 55 ], 56 }, 57 }, 58 ], # targets 59 } 60