Make root entry undeletable.
[chromium-blink-merge.git] / build / sanitizers / sanitizers.gyp
blob91dab8a238a4bf933c04c2cbb224ea6381028469
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         ['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': {
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   ],