# 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',
    '../gypfiles/config/win/msvs_dependencies.isolate',
  ],
  'conditions': [
    ['use_custom_libcxx==1', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/lib/libc++.so',
        ],
      },
    }],
    ['v8_use_snapshot=="true" and v8_use_external_startup_data==1', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/natives_blob.bin',
          '<(PRODUCT_DIR)/snapshot_blob.bin',
        ],
      },
    }],
    ['OS=="linux" and component=="shared_library" and target_arch=="ia32"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/lib/',
        ],
      },
    }],
    ['OS=="win" and component=="shared_library"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/icui18n.dll',
          '<(PRODUCT_DIR)/icuuc.dll',
          '<(PRODUCT_DIR)/v8.dll',
        ],
      },
    }],
    ['OS=="mac" and asan==1', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/libclang_rt.asan_osx_dynamic.dylib',
        ],
      },
    }],
    ['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': {},
    }],
  ],
}
