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

component("device_event_log") {
  sources = [
    "device_event_log.cc",
    "device_event_log.h",
    "device_event_log_impl.cc",
    "device_event_log_impl.h",
  ]

  defines = [ "DEVICE_EVENT_LOG_IMPLEMENTATION" ]

  deps = [
    "//base",
    "//third_party/icu",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [ "device_event_log_impl_unittest.cc" ]

  deps = [
    ":device_event_log",
    "//base",
    "//base/test:test_support",
    "//testing/gtest",
    "//third_party/icu",
  ]
}
