# Copyright 2018 The Fuchsia 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("unittests") {
  testonly = true

  sources = [ "metric_event_builder_unittest.cc" ]

  public_deps = [ "//src/lib/testing/loop_fixture" ]

  deps = [
    ":metric_event_builder",
    "//sdk/lib/sys/cpp/testing:unit",
    "//src/lib/fsl",
    "//third_party/googletest:gtest",
    "//zircon/system/ulib/async-testing",
  ]

  # TODO(https://fxbug.dev/42136089): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}

source_set("metric_event_builder") {
  sources = [
    "metric_event_builder.cc",
    "metric_event_builder.h",
  ]
  configs += [ "//third_party/cobalt:cobalt_config" ]
  public_deps = [ "//sdk/fidl/fuchsia.metrics:fuchsia.metrics_hlcpp" ]

  deps = [ "//sdk/lib/syslog/cpp" ]

  # TODO(https://fxbug.dev/42136089): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}
