# Copyright 2018 The Chromium 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_library.gni")

dart_library("flutter_driver") {
  package_name = "flutter_driver"

  # Can be left empty as analysis is disabled.
  sources = []

  disable_analysis = true

  deps = [
    "//third_party/dart-pkg/git/flutter/packages/flutter",
    "//third_party/dart-pkg/git/flutter/packages/flutter_test",
    "//third_party/dart-pkg/git/flutter/packages/fuchsia_remote_debug_protocol",
    "//third_party/dart-pkg/pub/file",
    "//third_party/dart-pkg/pub/json_rpc_2",
    "//third_party/dart-pkg/pub/meta",
    "//third_party/dart-pkg/pub/path",
    "//third_party/dart-pkg/pub/web_socket_channel",
    "//third_party/dart-pkg/pub/vm_service_client",
  ]

  if (is_fuchsia) {
    deps += [ "$flutter_root/sky/packages/sky_engine:sky_engine_dart" ]
  }
}
