# Copyright (c) 2013 The WebRTC 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 in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
{
  'conditions': [
    ['OS=="linux" or OS=="mac" or OS=="win" or OS=="android"', {
      'variables': {
        'files': [
          '<(DEPTH)/resources/audio_coding/speech_mono_16kHz.pcm',
          '<(DEPTH)/resources/audio_coding/testfile32kHz.pcm',
          '<(DEPTH)/resources/foreman_cif.yuv',
          '<(DEPTH)/resources/paris_qcif.yuv',
          '<(DEPTH)/resources/voice_engine/audio_long16.pcm',
          '<(DEPTH)/resources/difficult_photo_1850_1110.yuv',
          '<(DEPTH)/resources/photo_1850_1110.yuv',
          '<(DEPTH)/resources/presentation_1850_1110.yuv',
          '<(DEPTH)/resources/web_screenshot_1850_1110.yuv',
          '<(DEPTH)/resources/google-wifi-3mbps.rx',
          '<(DEPTH)/resources/verizon4g-downlink.rx',
        ],
      },
    }],
    ['OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'command': [
          '<(PRODUCT_DIR)/webrtc_perf_tests<(EXECUTABLE_SUFFIX)',
        ],
        'files': [
          '<(DEPTH)/DEPS',
          '<(PRODUCT_DIR)/webrtc_perf_tests<(EXECUTABLE_SUFFIX)',
        ],
      },
    }],
  ],
}
