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

import("//flutter/build/dart/rules.gni")
import("//flutter/testing/rules/runtime_mode.gni")

assert(is_android)

flutter_snapshot("android_background_image_snapshot") {
  main_dart = "lib/main.dart"
  package_config = ".dart_tool/package_config.json"
}

if (!is_aot) {
  copy("copy_jit_assets") {
    visibility = [ ":*" ]
    sources = [
      "$target_gen_dir/isolate_snapshot_data",
      "$target_gen_dir/isolate_snapshot_instr",
      "$target_gen_dir/kernel_blob.bin",
    ]
    outputs = [ "$root_out_dir/android_background_image/app/assets/flutter_assets/{{source_file_part}}" ]
    deps = [ ":android_background_image_snapshot" ]
  }
}

group("android_background_image") {
  deps = [
    ":android_background_image_snapshot",
    "android",
  ]

  if (!is_aot) {
    deps += [ ":copy_jit_assets" ]
  }
}
