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

import("//build/components.gni")
import("//build/config.gni")

executable("bin") {
  output_name = "perfetto-bridge"

  sources = [
    "main.cc",
    "perfetto_bridge.cc",
  ]

  deps = [
    "//examples/fidl/fuchsia.examples",
    "//sdk/fidl/fuchsia.tracing.perfetto",
    "//sdk/lib/fidl/cpp",
    "//sdk/lib/sys/cpp",
    "//src/lib/fxl",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
  ]
}

fuchsia_package_with_single_component("perfetto-bridge") {
  manifest = "meta/perfetto_bridge.cml"

  deps = [ ":bin" ]
}
