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

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

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

  if (is_fuchsia_tree) {
    public_deps = [
      "//garnet/public/lib/syslog/cpp",
    ]
  } else {
    public_deps = [
      "//third_party/glog",
    ]
  }
}

source_set("tracing") {
  sources = [
    "tracing.h",
  ]
  if (is_fuchsia_tree) {
    public_deps = [
      "//zircon/public/lib/trace",
    ]
  }
}
