# Copyright 2018 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 = "sshd-host"

  sources = [
    "sshd-host.cc",
  ]

  deps = [
    "//garnet/lib/chrealm",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/fdio",
    "//zircon/public/lib/zx",
  ]
}

package("sshd-host") {
  deprecated_bare_package_url = "//build"

  deps = [
    ":bin",
    "//third_party/openssh-portable:hostkeygen",
    "//third_party/openssh-portable:scp",
    "//third_party/openssh-portable:sftp-server",
    "//third_party/openssh-portable:sshd",
  ]

  binaries = [
    { name = "sshd-host" },
    { name = "hostkeygen" },
    { name = "scp" },
    { name = "sftp-server" },
    { name = "sshd" },
  ]

  meta = [
    {
      path = rebase_path("meta/sshd-host.cmx")
      dest = "sshd-host.cmx"
    },
  ]

  resources = [ {
        path = rebase_path("//third_party/openssh-portable/fuchsia/sshd_config")
        dest = "ssh/sshd_config"
      } ]
}
