Home | History | Annotate | Download | only in sanitizers
      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