# Copyright 2014 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("//mojo/public/mojo_application.gni")
import("//mojo/public/mojo_application_manifest.gni")

mojo_native_application("tracing") {
  sources = [
    "main.cc",
  ]

  avoid_runner_cycle = true

  deps = [
    ":lib",
    "//mojo/public/cpp/system",
    "//services/shell/public/cpp",
  ]

  data_deps = [
    ":manifest",
  ]
}

mojo_application_manifest("manifest") {
  application_name = "tracing"
  source = "manifest.json"
}

source_set("lib") {
  sources = [
    "trace_data_sink.cc",
    "trace_data_sink.h",
    "trace_recorder_impl.cc",
    "trace_recorder_impl.h",
    "tracing_app.cc",
    "tracing_app.h",
  ]

  deps = [
    "//base",
    "//mojo/common:common_base",
    "//services/shell/public/cpp",
    "//services/tracing/public/interfaces",
  ]
}
