# Copyright (c) 2013 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': [
    'telemetry.isolate',
  ],
  'conditions': [
    ['OS=="android" or OS=="linux" or OS=="mac" or OS=="win"', {
      # This isolate allows any of the GPU tests, including the WebGL
      # conformance tests, to be run. However, extra command line arguments
      # must be supplied in order to run any one of them.
      'variables': {
        'isolate_dependency_untracked': [
          '../content/test/gpu/',
          '../content/test/data/gpu/',
          # For GpuProcess.video
          '../content/test/data/media/bear.ogv',
          # For webgl_conformance
          '../third_party/webgl/',
        ],
        'command': [
          '../content/test/gpu/run_gpu_test.py',
        ],
      },
    }],
    # These PDBs are needed in order to get reasonable stack traces if
    # an assertion fires or a crash occurs. Add more as necessary.
    ['OS=="win" and (fastbuild==0 or fastbuild==1)', {
      'variables': {
        'isolate_dependency_tracked': [
          '<(PRODUCT_DIR)/chrome.dll.pdb',
          '<(PRODUCT_DIR)/chrome.exe.pdb',
          '<(PRODUCT_DIR)/chrome_child.dll.pdb',
        ],
      },
    }],
    ['OS=="win" and component=="shared_library" and (fastbuild==0 or fastbuild==1)', {
      'variables': {
        'isolate_dependency_tracked': [
          '<(PRODUCT_DIR)/base.dll.pdb',
          '<(PRODUCT_DIR)/blink_platform.dll.pdb',
          '<(PRODUCT_DIR)/blink_web.dll.pdb',
          '<(PRODUCT_DIR)/content.dll.pdb',
        ],
      },
    }],
  ]
}
