Roll src/third_party/WebKit e0eac24:489c548 (svn 193311:193320)
[chromium-blink-merge.git] / build / sanitizers / sanitizers.gyp
blob4126d22c1ca4593e6cef160ff6908d14cdb49cc8
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.
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       ],
45       'cflags/': [
46         ['exclude', '-fsanitize='],
47         ['exclude', '-fsanitize-'],
48       ],
49       'direct_dependent_settings': {
50         'ldflags': [
51           '-Wl,-u_sanitizer_options_link_helper',
52         ],
53         'target_conditions': [
54           ['_type=="executable"', {
55             'xcode_settings': {
56               'OTHER_LDFLAGS': [
57                 '-Wl,-u,__sanitizer_options_link_helper',
58               ],
59             },
60           }],
61         ],
62       },
63     },
64     {
65       # Copy llvm-symbolizer to the product dir so that LKGR bots can package it.
66       'target_name': 'llvm-symbolizer',
67       'type': 'none',
68       'variables': {
70        # Path is relative to this GYP file.
71        'llvm_symbolizer_path':
72            '../../third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer<(EXECUTABLE_SUFFIX)',
73       },
74       'conditions': [
75         ['clang==1', {
76           'copies': [{
77             'destination': '<(PRODUCT_DIR)',
78             'files': [
79               '<(llvm_symbolizer_path)',
80             ],
81           }],
82         }],
83       ],
84     },
85   ],