# 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/',
        ],
      },
    }],
    ['OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'command': [
          '../../testing/test_env.py',
          '../../tools/swarm_client/googletest/run_test_cases.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/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/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/near8_stereo.pcm',
          '../../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/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/swarm_client/',
        ],
      },
    }],
  ],
}
