# 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 || use.fuzzer) {
    deps += [ "//vm_tools/host" ]
  }
  if (!use.kvm_host) {
    deps += [
      "//vm_tools/guest",
      "//vm_tools/sommelier:all",
    ]
  }
  if (use.fuzzer) {
    deps += [ ":cicerone_container_listener_fuzzer" ]
  }
}

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

if (use.fuzzer) {
  executable("cicerone_container_listener_fuzzer") {
    sources = [
      "cicerone/container_listener_impl_fuzzer.cc",
    ]

    # //common-mk:test should be on the top.
    # TODO(crbug.com/887845): Remove this comment after library ordering issue is fixed.
    configs += [
      "//common-mk:test",
      "//common-mk/common_fuzzer:common_fuzzer",
    ]
    pkg_deps = [
      "grpc++",
      "libchrome-test-${libbase_ver}",  # For FuzzedDataProvider
      "libprotobuf-mutator",
      "protobuf",
      "vm_protos",
    ]
    deps = [
      "//vm_tools/host:libcicerone",
      "//vm_tools/host:service_testing_helper_lib",
    ]
  }
}
