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

source_set("cmdline") {
  visibility = [
    ":kcounter",
    "//src/zircon/tests/kcounter",
  ]
  sources = [ "kcounter_cmdline.cc" ]
}

executable("kcounter") {
  if (is_fuchsia) {
    fdio_config = [ "//build/config/fuchsia:fdio_config" ]
    if (configs + fdio_config - fdio_config != configs) {
      configs -= fdio_config
    }
  }
  sources = [ "kcounter.cc" ]
  deps = [
    ":cmdline",
    "//sdk/lib/fdio",
    "//zircon/kernel/lib/counters",
    "//zircon/system/ulib/fbl",
    "//zircon/system/ulib/fzl",
    "//zircon/system/ulib/zx",
  ]
}
