# 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/testing/environments.gni")
import("//peridot/build/executable_package.gni")

executable("basemgr_launcher_bin") {
  output_name = "basemgr_launcher"
  sources = [
    "main.cc",
  ]

  deps = [
    "//garnet/public/lib/component/cpp",
    "//sdk/fidl/fuchsia.sys",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/fdio",
  ]
  public_deps = [
    "//sdk/fidl/fuchsia.sys",
    "//sdk/lib/fidl/cpp",
    "//sdk/lib/sys/cpp",
    "//sdk/lib/vfs/cpp",
    "//zircon/public/lib/async-default",
  ]
}

package("basemgr_launcher") {
  deps = [
    ":basemgr_launcher_bin",
  ]
  binaries = [
    {
      name = "basemgr_launcher"
      shell = true
    },
  ]

  meta = [
    {
      path = "meta/basemgr_launcher.cmx"
      dest = "basemgr_launcher.cmx"
    },
  ]
}
