# Copyright 2017 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/dart/dart_test.gni")
import("//build/dart/dart_tool.gni")

dart_tool("mod") {
  package_name = "mod"

  main_dart = "bin/mod.dart"

  sources = [
    "commands.dart",
  ]

  deps = [
    "//third_party/dart-pkg/pub/args",
    "//third_party/dart-pkg/pub/path",
    "//third_party/dart-pkg/pub/strings",
  ]
}

dart_test("test") {
  sources = [
    "commands/create_test.dart",
  ]

  deps = [
    ":mod_dart_library",
    "//third_party/dart-pkg/pub/test",
  ]
}
