# 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', {
      '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 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',
        ],
      },
    }],
  ],
}
