# Copyright (c) 2018 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("../../webrtc.gni")
if (is_android) {
  import("//build/config/android/config.gni")
  import("//build/config/android/rules.gni")
}

rtc_library("aligned_malloc") {
  sources = [
    "aligned_malloc.cc",
    "aligned_malloc.h",
  ]
  deps = [ "..:checks" ]
}

# Test only utility.
rtc_library("fifo_buffer") {
  testonly = true
  visibility = [
    ":unittests",
    "..:rtc_base_tests_utils",
    "..:rtc_base_unittests",
  ]
  sources = [
    "fifo_buffer.cc",
    "fifo_buffer.h",
  ]
  deps = [
    "..:macromagic",
    "..:stream",
    "..:threading",
    "../../api:array_view",
    "../../api:sequence_checker",
    "../../api/task_queue:pending_task_safety_flag",
  ]
}

rtc_library("unittests") {
  testonly = true
  sources = [
    "aligned_malloc_unittest.cc",
    "always_valid_pointer_unittest.cc",
    "fifo_buffer_unittest.cc",
  ]
  deps = [
    ":aligned_malloc",
    ":always_valid_pointer",
    ":fifo_buffer",
    "../../test:test_support",
  ]
}

rtc_source_set("always_valid_pointer") {
  sources = [ "always_valid_pointer.h" ]
  deps = [ "..:checks" ]
}
