# Copyright 2018 The Chromium 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("//testing/test.gni")

group("rnnoise") {
  deps = [
    ":kiss_fft",
    ":rnn_vad",
  ]
}

source_set("kiss_fft") {
  sources = [
    "src/kiss_fft.cc",
    "src/kiss_fft.h",
  ]
}

source_set("rnn_vad") {
  sources = [
    "src/rnn_activations.h",
    "src/rnn_vad_weights.cc",
    "src/rnn_vad_weights.h",
  ]
}

test("kiss_fft_unittest") {
  sources = [
    "src/kiss_fft_unittest.cc",
  ]
  deps = [
    ":kiss_fft",
    "//testing/gtest",
    "//testing/gtest:gtest_main",
  ]
}
