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

visibility = [ "$cobalt_root/*" ]

group("tests") {
  testonly = true
  deps = [
    "algorithms:tests",
    "bin:tests",
    "lib:tests",
    "local_aggregation:tests",
    "local_aggregation_1_1:tests",
    "logger:tests",
    "observation_store:tests",
    "pb:tests",
    "public:tests",
    "registry:tests",
    "system_data:unittests",
    "uploader:tests",
  ]
}

source_set("logging") {
  sources = [ "logging.h" ]

  if (is_fuchsia_tree) {
    public_deps = [
      "//sdk/lib/syslog/cpp",
      "//sdk/lib/syslog/cpp:backend_legacy",
    ]
  } else {
    public_deps = [ "//third_party/glog" ]
  }

  # TODO(fxb/58162): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}

source_set("tracing") {
  sources = [ "tracing.h" ]
  if (is_fuchsia_tree) {
    public_deps = [ "//zircon/system/ulib/trace" ]
  }
}
