# Copyright 2017 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/package.gni")

executable("bin") {
  output_name = "cpuperf_provider"

  sources = [
    "main.cc",
  ]

  # arm64 support will come later
  if (current_cpu == "x64") {
    sources += [
      "app.cc",
      "app.h",
      "categories.cc",
      "categories.h",
      "importer.cc",
      "importer.h",
      "intel-misc-categories.inc",
      "intel-pm-categories.inc",
      "intel-timebase-categories.inc",
      "skylake-pm-categories.inc",
    ]
  }

  deps = [
    "//garnet/lib/cpuperf",
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/fxl",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/trace-provider",
    "//zircon/public/lib/zircon-internal",
  ]
}

package("cpuperf_provider") {

  deps = [
    ":bin",
  ]

  binary = "cpuperf_provider"

  meta = [ {
        path = rebase_path("meta/cpuperf_provider.cmx")
        dest = "cpuperf_provider.cmx"
      } ]
}

group("report_generators") {
  deps = [
    "//garnet/bin/cpuperf_provider/report-generators/tally",
  ]
}
