# Copyright 2020 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")

executable("shutdown-shim") {
  sources = [ "main.cc" ]

  deps = [
    "//sdk/fidl/fuchsia.device.manager:fuchsia.device.manager_cpp",
    "//sdk/fidl/fuchsia.hardware.power.statecontrol:fuchsia.hardware.power.statecontrol_cpp",
    "//sdk/fidl/fuchsia.power.broker:fuchsia.power.broker_cpp",
    "//sdk/fidl/fuchsia.power.system:fuchsia.power.system_cpp",
    "//sdk/fidl/fuchsia.process.lifecycle:fuchsia.process.lifecycle_cpp",
    "//sdk/fidl/fuchsia.sys2:fuchsia.sys2_cpp",
    "//sdk/lib/component/incoming/cpp",
    "//sdk/lib/fit",
    "//src/storage/lib/vfs/cpp",
    "//src/sys/lib/stdout-to-debuglog/cpp",
    "//zircon/system/ulib/async-default",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
    "//zircon/system/ulib/fbl",
  ]
}

fuchsia_component("component") {
  component_name = "shutdown-shim"
  manifest = "meta/shutdown-shim.cml"
  deps = [ ":shutdown-shim" ]

  # shutdown-shim uses the boot log.
  # The includes checker wants the syslog shard because console gets the
  # injected dep on the legacy syslog backend.
  check_includes = false
}

fuchsia_package("package") {
  package_name = "shutdown-shim"
  deps = [ ":component" ]
}
