# Copyright 2014 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")

static_library("ble") {
  sources = [
    "bluetooth_low_energy_characteristics_finder.cc",
    "bluetooth_low_energy_characteristics_finder.h",
    "bluetooth_low_energy_connection.cc",
    "bluetooth_low_energy_connection.h",
    "bluetooth_low_energy_connection_finder.cc",
    "bluetooth_low_energy_connection_finder.h",
    "bluetooth_low_energy_device_whitelist.cc",
    "bluetooth_low_energy_device_whitelist.h",
    "bluetooth_low_energy_weave_client_connection.cc",
    "bluetooth_low_energy_weave_client_connection.h",
    "bluetooth_low_energy_weave_defines.h",
    "bluetooth_low_energy_weave_packet_generator.cc",
    "bluetooth_low_energy_weave_packet_generator.h",
    "bluetooth_low_energy_weave_packet_receiver.cc",
    "bluetooth_low_energy_weave_packet_receiver.h",
    "fake_wire_message.cc",
    "fake_wire_message.h",
    "pref_names.cc",
    "pref_names.h",
    "remote_attribute.h",
  ]

  deps = [
    "//base",
    "//components/prefs",
    "//components/proximity_auth/logging",

    # TODO(https://crbug.com/562683): This component has a circular dependency
    # with the root proximity auth target. It is whitelisted in that target for
    # includes.
    #"//components/proximity_auth",
    "//device/bluetooth",
    "//net",
  ]

  public_deps = [
    "//components/proximity_auth/cryptauth/proto",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "bluetooth_low_energy_characteristics_finder_unittest.cc",
    "bluetooth_low_energy_connection_finder_unittest.cc",
    "bluetooth_low_energy_connection_unittest.cc",
    "bluetooth_low_energy_device_whitelist_unittest.cc",
    "bluetooth_low_energy_weave_client_connection_unittest.cc",
    "bluetooth_low_energy_weave_packet_generator_unittest.cc",
    "bluetooth_low_energy_weave_packet_receiver_unittest.cc",
  ]

  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]

  deps = [
    ":ble",
    "//base/test:test_support",
    "//components/prefs:test_support",
    "//components/proximity_auth:test_support",
    "//device/bluetooth:mocks",
    "//testing/gmock",
    "//testing/gtest",
  ]

  public_deps = [
    "//components/proximity_auth/cryptauth/proto",
  ]
}
