# 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=="android"', {
      # When doing Android builds, the WebRTC code is put in third_party/webrtc
      # of a Chromium checkout, this is one level above the standalone build.
      'variables': {
        'isolate_dependency_untracked': [
          '../../../data/',
          '../../../resources/',
        ],
        'isolate_dependency_tracked': [
          '../../../resources/short_mixed_mono_48.dat',
          '../../../resources/short_mixed_mono_48.pcm',
          '../../../resources/short_mixed_stereo_48.dat',
          '../../../resources/short_mixed_stereo_48.pcm',
        ],
      },
    }],
    ['OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'command': [
          '../../testing/test_env.py',
          '<(PRODUCT_DIR)/modules_unittests<(EXECUTABLE_SUFFIX)',
        ],
        'isolate_dependency_tracked': [
          '../../DEPS',
          '../../data/audio_processing/output_data_float.pb',
          '../../data/voice_engine/audio_tiny48.wav',
          '../../resources/att-downlink.rx',
          '../../resources/att-uplink.rx',
          '../../resources/audio_coding/neteq4_network_stats.dat',
          '../../resources/audio_coding/neteq4_rtcp_stats.dat',
          '../../resources/audio_coding/neteq4_universal_ref.pcm',
          '../../resources/audio_coding/neteq_network_stats.dat',
          '../../resources/audio_coding/neteq_rtcp_stats.dat',
          '../../resources/audio_coding/neteq_universal_new.rtp',
          '../../resources/audio_coding/neteq_universal_ref.pcm',
          '../../resources/audio_coding/testfile32kHz.pcm',
          '../../resources/deflicker_before_cif_short.yuv',
          '../../resources/far16_stereo.pcm',
          '../../resources/far32_stereo.pcm',
          '../../resources/far44_stereo.pcm',
          '../../resources/far48_stereo.pcm',
          '../../resources/far8_stereo.pcm',
          '../../resources/foremanColorEnhanced_cif_short.yuv',
          '../../resources/foreman_cif.yuv',
          '../../resources/foreman_cif_short.yuv',
          '../../resources/near16_stereo.pcm',
          '../../resources/near32_stereo.pcm',
          '../../resources/near44_stereo.pcm',
          '../../resources/near48_stereo.pcm',
          '../../resources/near8_stereo.pcm',
          '../../resources/ref03.aecdump',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_0_AST.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_0_TOF.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_1_AST.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_1_TOF.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_0_AST.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_0_TOF.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_1_AST.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_1_TOF.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingDelay1_0_AST.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingDelay1_0_TOF.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingLoss1_0_AST.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingLoss1_0_TOF.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_Multi1_1_AST.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_Multi1_1_TOF.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_0_AST.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_0_TOF.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_1_AST.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_1_TOF.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyDelay_0_AST.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyDelay_0_TOF.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyLoss_0_AST.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyLoss_0_TOF.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_UnlimitedSpeed_0_AST.bin',
          '../../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_UnlimitedSpeed_0_TOF.bin',
          '../../resources/short_mixed_mono_48.dat',
          '../../resources/short_mixed_mono_48.pcm',
          '../../resources/short_mixed_stereo_48.dat',
          '../../resources/short_mixed_stereo_48.pcm',
          '../../resources/sprint-downlink.rx',
          '../../resources/sprint-uplink.rx',
          '../../resources/synthetic-trace.rx',
          '../../resources/tmobile-downlink.rx',
          '../../resources/tmobile-uplink.rx',
          '../../resources/verizon3g-downlink.rx',
          '../../resources/verizon3g-uplink.rx',
          '../../resources/verizon4g-downlink.rx',
          '../../resources/verizon4g-uplink.rx',
          '../../resources/video_coding/frame-ethernet-ii.pcap',
          '../../resources/video_coding/frame-loopback.pcap',
          '../../resources/video_coding/pltype103.rtp',
          '../../resources/video_coding/ssrcs-2.pcap',
          '../../resources/video_coding/ssrcs-3.pcap',
          '../../testing/test_env.py',
          '<(PRODUCT_DIR)/modules_unittests<(EXECUTABLE_SUFFIX)',
        ],
        'isolate_dependency_untracked': [
          '../../tools/swarming_client/',
        ],
      },
    }],
  ],
}
