# 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("modular_testing_cpp") {
  sources = [
    "fake_agent.cc",
    "fake_component.cc",
    "test_harness_builder.cc",
    "test_harness_launcher.cc",
    "include/lib/modular/testing/cpp/fake_agent.h",
    "include/lib/modular/testing/cpp/fake_component.h",
    "include/lib/modular/testing/cpp/test_harness_builder.h",
    "include/lib/modular/testing/cpp/test_harness_launcher.h",
  ]
  include_dirs = [ "include" ]
  public_deps = [
    "../../fidl/fuchsia.modular",
    "../../fidl/fuchsia.modular.testing",
    "../async-loop-cpp",
    "../async-loop-default",
    "../modular_cpp",
    "../sys_cpp",
  ]
}

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