# Copyright 2019 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/package.gni")
import("//src/sys/build/fuchsia_unittest_package.gni")

source_set("lib") {
  sources = [
    "app.cc",
    "app.h",
    "command.cc",
    "command.h",
    "console.cc",
    "console.h",
    "executor.cc",
    "executor.h",
    "scoped_interpreter.h",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.hardware.pty:fuchsia.hardware.pty_c",
    "//sdk/lib/syslog/cpp",
    "//src/developer/shell/common",
    "//src/developer/shell/fidl/fuchsia.shell:shell_llcpp",
    "//src/developer/shell/interpreter:shell_server_lib",
    "//src/developer/shell/parser",
    "//src/lib/fsl",
    "//src/lib/line_input",
    "//zircon/public/lib/async-cpp",
    "//zircon/system/ulib/cmdline",
  ]
}

executable("bin") {
  output_name = "cliff"

  sources = [ "main.cc" ]

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

executable("console_unittests_bin") {
  testonly = true

  sources = [
    "app_unittest.cc",
    "command_unittest.cc",
    "executor_unittest.cc",
  ]

  deps = [
    ":lib",
    "//src/lib/fxl/test:gtest_main",
    "//src/lib/testing/loop_fixture",
    "//third_party/googletest:gmock",
    "//third_party/googletest:gtest",
  ]
}

fuchsia_unittest_package("shell-console-unittests") {
  executable_path = "bin/console_unittests_bin"
  deps = [ ":console_unittests_bin" ]
}
