# Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

import("../application_snapshot.gni")

dartdev_files = exec_script("../../tools/list_dart_files.py",
                            [
                              "absolute",
                              rebase_path("../../pkg/dartdev"),
                            ],
                            "list lines")

group("dartdev") {
  public_deps = [ ":copy_dartdev_kernel" ]
}

copy("copy_dartdev_kernel") {
  visibility = [ ":dartdev" ]
  public_deps = [ ":generate_dartdev_kernel" ]
  sources = [ "$root_gen_dir/dartdev.dill" ]
  outputs = [ "$root_out_dir/dartdev.dill" ]
}

application_snapshot("generate_dartdev_kernel") {
  dart_snapshot_kind = "kernel"
  main_dart = "../../pkg/dartdev/bin/dartdev.dart"
  training_args = []
  deps = [ "../dds:dds" ]
  inputs = dartdev_files
  output = "$root_gen_dir/dartdev.dill"
}
