# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.

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

group("tools") {
  testonly = true
  deps = [ ":audio_mixer_profiler" ]
}

executable("profiler_bin") {
  output_name = "audio_mixer_profiler"

  testonly = true

  sources = [
    "audio_performance.cc",
    "audio_performance.h",
    "profiler_main.cc",
  ]

  deps = [
    "//src/lib/fxl",
    "//src/media/audio/audio_core/mixer",
    "//src/media/audio/audio_core/mixer/test:frequency_set",
    "//src/media/audio/lib/analysis",
    "//src/media/audio/lib/format",
    "//src/media/audio/lib/processing",
    "//src/media/audio/lib/processing:empty_coefficient_tables",
    "//src/performance/lib/profiler",
    "//zircon/system/ulib/perftest",
  ]
}

fuchsia_package_with_single_component("audio_mixer_profiler") {
  testonly = true

  deps = [ ":profiler_bin" ]
  manifest = "meta/audio_mixer_profiler.cml"
}
