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

import("//chromecast/chromecast.gni")
import("//testing/test.gni")

assert(!is_fuchsia)

cast_source_set("system_tracing_common") {
  sources = [
    "system_tracing_common.cc",
    "system_tracing_common.h",
  ]

  deps = [
    "//base",
  ]
}

cast_executable("traced") {
  sources = [
    "ftrace.cc",
    "ftrace.h",
    "tracing_service_main.cc",
  ]

  deps = [
    ":system_tracing_common",
    "//base",
  ]
}

cast_source_set("system_tracer") {
  sources = [
    "system_tracer.cc",
    "system_tracer.h",
  ]

  public_deps = [
    ":system_tracing_common",
    "//base",
  ]
}

group("tracing") {
  deps = [
    ":system_tracing_common",
    ":traced",
  ]
}
