# Copyright 2019 The Fuchsia 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/packages/prebuilt_package.gni")

group("dart") {
  public_deps = [
    ":dart_aot",
    ":dart_aot_product",
    ":dart_jit",
    ":dart_jit_product",
  ]
}

prebuilt_package("dart_aot_runner") {
  archive = "//prebuilt/third_party/flutter/$target_cpu/profile/aot/dart_aot_runner-0.far"
}

prebuilt_package("dart_aot_product_runner") {
  archive = "//prebuilt/third_party/flutter/$target_cpu/release/aot/dart_aot_product_runner-0.far"
}

prebuilt_package("dart_jit_runner") {
  archive = "//prebuilt/third_party/flutter/$target_cpu/debug/jit/dart_jit_runner-0.far"
}

prebuilt_package("dart_jit_product_runner") {
  archive = "//prebuilt/third_party/flutter/$target_cpu/release/jit/dart_jit_product_runner-0.far"
}

group("dart_aot") {
  public_deps = [
    "//src/dart:dart_aot_runner",
    "//src/lib/icu/tzdata:icu_tzdata_for_dart_aot_runner",
  ]
}

group("dart_aot_product") {
  public_deps = [
    "//src/dart:dart_aot_product_runner",
    "//src/lib/icu/tzdata:icu_tzdata_for_dart_aot_product_runner",
  ]
}

group("dart_jit") {
  public_deps = [
    "//src/dart:dart_jit_runner",
    "//src/lib/icu/tzdata:icu_tzdata_for_dart_jit_runner",
  ]
}

group("dart_jit_product") {
  public_deps = [
    "//src/dart:dart_jit_product_runner",
    "//src/lib/icu/tzdata:icu_tzdata_for_dart_jit_product_runner",
  ]
}
