# Copyright 2014 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.

group("dart") {
  deps = [
    ":testing",
    ":init_library",
  ]
}


copy("testing") {
  sources = [
    "test/bindings_generation_test.dart",
    "test/codec_test.dart",
    "test/compile_all_interfaces_test.dart",
    "test/core_test.dart",
    "test/handle_watcher_test.dart",
    "test/handle_finalizer_test.dart",
    "test/interface_test.dart",
    "testing/expect.dart",
  ]
  outputs = [
    "{{source_gen_dir}}/{{source_file_part}}"
  ]
}


group("init_library") {
  deps = [
    ":mojo_dart_init",
    ":copy_init_library",
  ]
}


shared_library("mojo_dart_init") {
  defines = ["DART_SHARED_LIB"]
  sources = [
    "system/mojo_dart_init.cc",
  ]
  deps = [
    "//mojo/edk/system",
  ]
}


# This library is copied alongside the Dart sources so that it can be found
# under the Dart package root.
copy("copy_init_library") {
  sources = [
    "$root_out_dir/libmojo_dart_init.so",
  ]
  outputs = [
    "$root_out_dir/gen/mojo/public/dart/src/libmojo_dart_init.so"
  ]
  deps =[
    ":mojo_dart_init"
  ]
}
