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

import("//build/components.gni")
import("//build/test.gni")
import("//build/testing/bootfs_test.gni")

executable("sysinfo") {
  output_dir = "$root_out_dir/zircon-migrated"
  sources = [ "main.cc" ]
  deps = [
    "//sdk/fidl/fuchsia.sysinfo:fuchsia.sysinfo_cpp",
    "//sdk/lib/component/incoming/cpp",
    "//sdk/lib/component/outgoing/cpp",
    "//src/sys/lib/stdout-to-debuglog/cpp",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
  ]
}

test("test") {
  output_name = "sysinfo-test"
  sources = [ "sysinfo-test.cc" ]
  deps = [
    "//sdk/fidl/fuchsia.sysinfo:fuchsia.sysinfo_cpp",
    "//sdk/lib/component/incoming/cpp",
    "//zircon/system/ulib/zxtest",
  ]
}

bootfs_test("sysinfo-bootfs-test") {
  name = "sysinfo-test"
  environments = basic_envs
  deps = [ ":test" ]
}

fuchsia_component("component") {
  component_name = "sysinfo"
  manifest = "meta/sysinfo.cml"
  deps = [ ":sysinfo" ]
}

fuchsia_package("package") {
  package_name = "sysinfo"
  deps = [ ":component" ]
}
