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