# Copyright 2015 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{
  'includes': [
    '../third_party/icu/icu.isolate',

    # MSVS runtime libraries.
    '../gypfiles/win/msvs_dependencies.isolate',
  ],
  'conditions': [
    ['v8_use_snapshot=="true" and v8_use_external_startup_data==1', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/natives_blob.bin',
          '<(PRODUCT_DIR)/snapshot_blob.bin',
        ],
      },
    }],
    ['tsan==1', {
      'variables': {
        'files': [
          '../tools/sanitizers/tsan_suppressions.txt',
        ],
      },
    }],
    ['OS=="linux" and (asan==1 or cfi_vptr==1 or msan==1 or tsan==1)', {
      'variables': {
        'files': [
          # For llvm-symbolizer.
          '../third_party/llvm-build/Release+Asserts/lib/libstdc++.so.6',
        ],
      },
    }],
    ['asan==1 or cfi_vptr==1 or msan==1 or tsan==1', {
      'variables': {
        'files': [
          '../third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer<(EXECUTABLE_SUFFIX)',
        ],
      },
    }],
    # Workaround for https://code.google.com/p/swarming/issues/detail?id=211
    ['asan==0 or cfi_vptr==0 or msan==0 or tsan==0', {
      'variables': {},
    }],
  ],
}
