# Copyright 2021 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/cpp/library_headers.gni")

library_headers("devmgr-integration-test-shim-headers") {
  testonly = true
  headers = [ "lib/devmgr-integration-test/fixture.h" ]
  public_deps = [
    "//sdk/fidl/fuchsia.driver.test:fuchsia.driver.test_hlcpp",
    "//sdk/fidl/fuchsia.io:fuchsia.io_cpp",
    "//sdk/fidl/fuchsia.process.lifecycle:fuchsia.process.lifecycle_cpp",
    "//sdk/lib/device-watcher/cpp",
    "//sdk/lib/driver_test_realm/realm_builder/cpp",
    "//sdk/lib/driver_test_realm/realm_builder/cpp",
    "//sdk/lib/fit",
    "//zircon/system/ulib/async",
    "//zircon/system/ulib/async-loop:async-loop-default",
    "//zircon/system/ulib/fbl",
    "//zircon/system/ulib/zx",
  ]
}

source_set("devmgr-integration-test-shim") {
  testonly = true

  sources = [ "fixture.cc" ]
  public_deps = [ ":devmgr-integration-test-shim-headers" ]
  deps = [
    "//sdk/fidl/fuchsia.driver.framework:fuchsia.driver.framework_cpp",
    "//sdk/fidl/fuchsia.driver.test:fuchsia.driver.test_hlcpp",
    "//sdk/lib/fdio",
    "//sdk/lib/sys/cpp",
    "//src/lib/ddk",
    "//src/storage/lib/vfs/cpp",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/fdio-caller",
    "//zircon/system/ulib/fzl",
    "//zircon/system/ulib/zx",
  ]
  configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
}
