# Copyright 2014 The Chromium 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': [
    # While the target 'base' doesn't depend on ../third_party/icu/icu.gyp
    # itself, virtually all targets using it has to include icu. The only
    # exception is the Windows sandbox (?).
    '../third_party/icu/icu.isolate',
  ],
  'conditions': [
    ['OS=="linux" and asan==1 and chromeos==0', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/lib/libc++.so',
        ],
      },
    }],
    ['OS=="mac" and asan==1', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/libclang_rt.asan_osx_dynamic.dylib',
        ],
      },
    }],
    ['OS=="win" and asan==1', {
      'variables': {
        'files': [
          '../third_party/llvm-build/Release+Asserts/lib/clang/3.7.0/lib/windows/clang_rt.asan_dynamic-i386.dll',
        ],
      },
    }],
    ['OS=="linux" and asan==1', {
      'variables': {
        'files': [
          # For llvm-symbolizer.
          '../third_party/llvm-build/Release+Asserts/lib/libstdc++.so.6',
        ],
      },
    }],
    ['asan==1', {
      'variables': {
        'files': [
          '../tools/valgrind/asan/',
          '../third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer<(EXECUTABLE_SUFFIX)',
        ],
      },
    }],
    ['lsan==1', {
      'variables': {
        'files': [
          '../tools/lsan/suppressions.txt',
        ],
      },
    }],
    ['OS=="win" and component=="shared_library" and CONFIGURATION_NAME=="Debug"', {
      'variables': {
        'files': [
          # Copy the VS runtime DLLs into the isolate so that they
          # don't have to be preinstalled on the target machine.
          '<(PRODUCT_DIR)/msvcp120d.dll',
          '<(PRODUCT_DIR)/msvcr120d.dll',
          '<(PRODUCT_DIR)/x64/msvcp120d.dll',
          '<(PRODUCT_DIR)/x64/msvcr120d.dll',
        ],
      },
    }],
    ['OS=="win" and component=="shared_library" and CONFIGURATION_NAME=="Release"', {
      'variables': {
        'files': [
          # Copy the VS runtime DLLs into the isolate so that they
          # don't have to be preinstalled on the target machine.
          '<(PRODUCT_DIR)/msvcp120.dll',
          '<(PRODUCT_DIR)/msvcr120.dll',
        ],
      },
    }],
  ],
}
