# 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/vm_service_client",
    "//third_party/dart-pkg/pub/web_socket_channel",
  ]

  if (is_fuchsia) {
    deps += [ "//topaz/runtime/sky_engine:sky_engine_dart" ]
  }
}
