blob: ea453d3566bcd6307581ec18f7b8373d70765d14 [file] [log] [blame]
# Copyright 2014 The LibYuv Project Authors. All rights reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
# This is a similar target to the one in Chromium's base.gyp. It's needed to get
# the same sanitizer settings as Chromium uses (i.e. ASan, LSan, TSan...).
{
'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/sanitizer_options.cc',
],
'include_dirs': [
'<(DEPTH)',
],
# 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!': [
'<(DEPTH)/third_party/libc++/libc++.gyp:libcxx_proxy',
],
}],
['tsan==1', {
'sources': [
'tsan_suppressions/tsan_suppressions.cc',
],
}],
],
'cflags!': [
'-fsanitize=address',
'-fsanitize=thread',
'-fsanitize=memory',
'-fsanitize-memory-track-origins',
],
'direct_dependent_settings': {
'ldflags': [
'-Wl,-u_sanitizer_options_link_helper',
],
},
},
], # targets
}