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

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

# [START part_1_solution_build_dep]
source_set("lib") {
  sources = [
    "reverser.cc",
    "reverser.h",
  ]

  public_deps = [
    "//examples/diagnostics/inspect/codelab/fidl:fuchsia.examples.inspect",
    "//sdk/lib/sys/inspect/cpp",
  ]
}

# [END part_1_solution_build_dep]

test("reverser_unittests_part_2") {
  sources = [ "reverser_unittests.cc" ]

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

executable("bin") {
  output_name = "inspect_cpp_codelab_part_2_bin"
  sources = [ "main.cc" ]

  deps = [
    ":lib",
    "//sdk/lib/sys/cpp",
    "//sdk/lib/syslog/cpp",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
  ]
}
