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

source_set("bluetooth") {
  sources = [
    "bluetooth_utils.cc",
    "bluetooth_utils.h",
  ]

  deps = [
    "//base",
    "//device/bluetooth",
    "//device/bluetooth/strings",
    "//services/device/public/mojom",
    "//ui/base",
  ]
}

source_set("bluetooth_tests") {
  testonly = true

  sources = [
    "bluetooth_utils_unittest.cc",
  ]

  deps = [
    ":bluetooth",
    "//base",
    "//services/device/public/mojom",
    "//testing/gtest",
    "//ui/base",
  ]
}
