chromium-src-build/sanitizers/sanitizers.gyp

93 строки
2.5 KiB
Python

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