# 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" ]
  } else {
    public_deps = [ "//third_party/glog" ]
  }
}

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