# 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.

# See webrtc/build/apk_tests.gyp for more information about this file.
{
  'targets': [
    {
      'target_name': 'audio_decoder_unittests_apk',
      'type': 'none',
    },
    {
      'target_name': 'common_audio_unittests_apk',
      'type': 'none',
    },
    {
      'target_name': 'common_video_unittests_apk',
      'type': 'none',
    },
    {
      'target_name': 'modules_tests_apk',
      'type': 'none',
    },
    {
      'target_name': 'modules_unittests_apk',
      'type': 'none',
    },
    {
      'target_name': 'neteq_unittests_apk',
      'type': 'none',
    },
    {
      'target_name': 'system_wrappers_unittests_apk',
      'type': 'none',
    },
    {
      'target_name': 'test_support_unittests_apk',
      'type': 'none',
    },
    {
      'target_name': 'tools_unittests_apk',
      'type': 'none',
    },
    {
      'target_name': 'video_engine_core_unittests_apk',
      'type': 'none',
    },
    {
      'target_name': 'video_engine_tests_apk',
      'type': 'none',
    },
    {
      'target_name': 'voice_engine_unittests_apk',
      'type': 'none',
    },
    {
      'target_name': 'webrtc_perf_tests_apk',
      'type': 'none',
    },
    {
      'target_name': 'audio_codec_speed_tests_apk',
      'type': 'none',
    },
  ],
}
