# 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")

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

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" ]
  output = "$root_gen_dir/dartdev.dill"
}

copy("copy_dartdev_snapshot") {
  visibility = [ ":dartdev" ]
  public_deps = [ ":generate_dartdev_snapshot" ]
  sources = [ "$root_gen_dir/dartdev.dart.snapshot" ]
  outputs = [ "$root_out_dir/dartdev.dart.snapshot" ]
}

application_snapshot("generate_dartdev_snapshot") {
  main_dart = "../../pkg/dartdev/bin/dartdev.dart"
  training_args = [ "--help" ]
  deps = [ "../dds:dds" ]
  output = "$root_gen_dir/dartdev.dart.snapshot"
}
