# Copyright 2013 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

config("config") {
  include_dirs = [
    "//flutter/third_party",
    "//flutter",
  ]
}

source_set("tonic") {
  sources = [
    "dart_args.h",
    "dart_binding_macros.h",
    "dart_class_library.cc",
    "dart_class_library.h",
    "dart_class_provider.cc",
    "dart_class_provider.h",
    "dart_library_natives.cc",
    "dart_library_natives.h",
    "dart_list.cc",
    "dart_list.h",
    "dart_message_handler.cc",
    "dart_message_handler.h",
    "dart_microtask_queue.cc",
    "dart_microtask_queue.h",
    "dart_persistent_value.cc",
    "dart_persistent_value.h",
    "dart_state.cc",
    "dart_state.h",
    "dart_wrappable.cc",
    "dart_wrappable.h",
    "dart_wrapper_info.h",
  ]

  public_deps = [
    "common",
    "converter",
    "file_loader",
    "logging",
    "scopes",
    "typed_data",
    "//third_party/dart/runtime:dart_api",
  ]

  public_configs = [ ":config" ]
}
