# Copyright 2019 The Chromium OS 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("//common-mk/pkg_config.gni")

group("all") {
  deps = []
  if (use.kvm_host) {
    deps += [ "//vm_tools/host" ]
  }
  if (!use.kvm_host) {
    deps += [ "//vm_tools/guest" ]
    if (!use.fuzzer) {
      # Don't build sommelier if we are fuzzing.
      deps += [ "//vm_tools/sommelier:all" ]
    }
  }
}

static_library("libvsh") {
  sources = [
    "vsh/utils.cc",
  ]
  pkg_deps = [ "libchrome-${libbase_ver}" ]
}

executable("vshd") {
  sources = [
    "vsh/vsh_forwarder.cc",
    "vsh/vshd.cc",
  ]
  pkg_deps = [
    "libbrillo",
    "protobuf",
    "vm_protos",
    "libchrome-${libbase_ver}",
  ]
  deps = [
    ":libvsh",
  ]
}
