# 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/components.gni")

source_set("virtualization") {
  sources = [
    "scenic_wayland_dispatcher.cc",
    "scenic_wayland_dispatcher.h",
  ]
  public_deps = [
    "//sdk/fidl/fuchsia.sys",
    "//sdk/fidl/fuchsia.ui.app",
    "//sdk/fidl/fuchsia.virtualization",
    "//sdk/fidl/fuchsia.wayland",
    "//sdk/lib/sys/cpp",
    "//src/lib/fxl",
  ]
}

executable("virtualization_lib_unittests") {
  visibility = [ ":*" ]
  testonly = true

  sources = [ "scenic_wayland_dispatcher_unittest.cc" ]

  deps = [
    ":virtualization",
    "//garnet/public/lib/gtest",
    "//sdk/lib/sys/cpp/testing:unit",
    "//src/lib/fxl/test:gtest_main",
  ]

  # TODO(fxbug.dev/58162): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}

fuchsia_unittest_package("virtualization_lib_tests") {
  deps = [ ":virtualization_lib_unittests" ]
  manifest = "meta/virtualization_lib_unittests.cmx"
  test_specs = {
    log_settings = {
      max_severity = "ERROR"
    }
  }
}
