• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2014 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5{
6  'targets': [
7    {
8      'target_name': 'sanitizer_options',
9      'type': 'static_library',
10      'toolsets': ['host', 'target'],
11      'variables': {
12         # Every target is going to depend on sanitizer_options, so allow
13         # this one to depend on itself.
14         'prune_self_dependency': 1,
15         # Do not let 'none' targets depend on this one, they don't need to.
16         'link_dependency': 1,
17       },
18      'sources': [
19        'sanitizer_options.cc',
20      ],
21      'include_dirs': [
22        '../..',
23      ],
24      # Some targets may want to opt-out from ASan, TSan and MSan and link
25      # without the corresponding runtime libraries. We drop the libc++
26      # dependency and omit the compiler flags to avoid bringing instrumented
27      # code to those targets.
28      'conditions': [
29        ['use_custom_libcxx==1', {
30          'dependencies!': [
31            '../../buildtools/third_party/libc++/libc++.gyp:libcxx_proxy',
32          ],
33        }],
34        ['tsan==1', {
35          'sources': [
36            'tsan_suppressions.cc',
37          ],
38        }],
39        ['lsan==1', {
40          'sources': [
41            'lsan_suppressions.cc',
42          ],
43        }],
44        ['asan==1', {
45          'sources': [
46            'asan_suppressions.cc',
47          ],
48        }],
49      ],
50      'cflags/': [
51        ['exclude', '-fsanitize='],
52        ['exclude', '-fsanitize-'],
53      ],
54      'direct_dependent_settings': {
55        'ldflags': [
56          '-Wl,-u_sanitizer_options_link_helper',
57        ],
58        'target_conditions': [
59          ['_type=="executable"', {
60            'xcode_settings': {
61              'OTHER_LDFLAGS': [
62                '-Wl,-u,__sanitizer_options_link_helper',
63              ],
64            },
65          }],
66        ],
67      },
68    },
69    {
70      # Copy llvm-symbolizer to the product dir so that LKGR bots can package it.
71      'target_name': 'llvm-symbolizer',
72      'type': 'none',
73      'variables': {
74
75       # Path is relative to this GYP file.
76       'llvm_symbolizer_path':
77           '../../third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer<(EXECUTABLE_SUFFIX)',
78      },
79      'conditions': [
80        ['clang==1', {
81          'copies': [{
82            'destination': '<(PRODUCT_DIR)',
83            'files': [
84              '<(llvm_symbolizer_path)',
85            ],
86          }],
87        }],
88      ],
89    },
90  ],
91}
92
93