# 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.
{
  'conditions': [
    # iOS always has the icu data in the bundle and we don't have to
    # specify the dependency for iOS here.
    ['icu_use_data_file_flag==1 and (OS=="linux" or OS=="win" or OS=="mac" or OS=="android")', {
      'variables': {
        'isolate_dependency_tracked': [
          '<(PRODUCT_DIR)/icudtl.dat',
        ],
      },
    }],
    # When icu data is not used, other platforms link it statically.
    ['icu_use_data_file_flag==0 and OS=="win"', {
      'variables': {
          'isolate_dependency_tracked': [
            '<(PRODUCT_DIR)/icudt.dll',
        ],
      },
    }],
    ['OS=="linux" and component=="shared_library"', {
      'variables': {
        'isolate_dependency_tracked': [
          '<(PRODUCT_DIR)/lib/libicui18n.so',
          '<(PRODUCT_DIR)/lib/libicuuc.so',
        ],
      },
    }],
    ['OS=="mac" and component=="shared_library"', {
      'variables': {
        'isolate_dependency_tracked': [
          '<(PRODUCT_DIR)/libicui18n.dylib',
          '<(PRODUCT_DIR)/libicuuc.dylib',
        ],
      },
    }],
    ['OS=="win" and component=="shared_library"', {
      'variables': {
        'isolate_dependency_tracked': [
          '<(PRODUCT_DIR)/icui18n.dll',
          '<(PRODUCT_DIR)/icuuc.dll',
        ],
      },
    }],
  ],
}
