# Copyright 2020 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.

# DO NOT MANUALLY EDIT!
# Generated by //scripts/sdk/gn/generate.py.


import("../../build/fuchsia_sdk_pkg.gni")

fuchsia_sdk_pkg("sys_cpp_testing") {
  sources = [
    "component_context_provider.cc",
    "fake_component.cc",
    "fake_launcher.cc",
    "service_directory_provider.cc",
    "include/lib/sys/cpp/testing/component_context_provider.h",
    "include/lib/sys/cpp/testing/fake_component.h",
    "include/lib/sys/cpp/testing/fake_launcher.h",
    "include/lib/sys/cpp/testing/service_directory_provider.h",
  ]
  include_dirs = [ "include" ]
  public_deps = [
    "../../fidl/fuchsia.io",
    "../fit",
    "../sys_cpp",
    "../vfs_cpp",
    "../zx",
  ]
}

group("all"){
  deps = [
    ":sys_cpp_testing",
  ]
}
