# Copyright (c) 2014 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.

import("../../build/webrtc.gni")

source_set("utility") {
  sources = [
    "interface/audio_frame_operations.h",
    "interface/file_player.h",
    "interface/file_recorder.h",
    "interface/helpers_android.h",
    "interface/jvm_android.h",
    "interface/process_thread.h",
    "source/audio_frame_operations.cc",
    "source/coder.cc",
    "source/coder.h",
    "source/file_player_impl.cc",
    "source/file_player_impl.h",
    "source/file_recorder_impl.cc",
    "source/file_recorder_impl.h",
    "source/helpers_android.cc",
    "source/jvm_android.cc",
    "source/process_thread_impl.cc",
    "source/process_thread_impl.h",
  ]

  configs += [ "../..:common_config" ]
  public_configs = [ "../..:common_inherited_config" ]

  if (is_clang) {
    # Suppress warnings from Chrome's Clang plugins.
    # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
    configs -= [ "//build/config/clang:find_bad_constructs" ]
  }

  deps = [
    "../..:webrtc_common",
    "../../common_audio",
    "../../system_wrappers",
    "../audio_coding",
    "../media_file",
  ]
}
