#
#  Copyright 2015 Google, Inc.
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at:
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#

static_library("btcore") {
  sources = [
    "src/device_class.cc",
    "src/hal_util.cc",
    "src/module.cc",
    "src/property.cc",
    "src/osi_module.cc",
  ]

  include_dirs = [
    "include",
    "//",
  ]

  deps = [
    "//third_party/libchrome:base",
  ]
}

executable("net_test_btcore") {
  testonly = true
  sources = [
    "test/device_class_test.cc",
    "test/property_test.cc",
    "//osi/test/AllocationTestHarness.cc",
  ]

  include_dirs = [
    "include",
    "//",
  ]

  deps = [
    "//btcore",
    "//osi",
    "//types",
    "//third_party/googletest:gtest_main",
    "//third_party/libchrome:base",
  ]

  libs = [
    "-lpthread",
    "-lrt",
    "-ldl",
  ]
}
