# 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) {
    configs += [ "//build/unification/config:zircon-migrated" ]
  }
  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/public/lib/fbl",
    "//zircon/public/lib/zx",
    "//zircon/system/ulib/fzl",
  ]
}
