# Copyright 2022 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/product.gni")

fastboot_targets = []
if (use_bringup_assembly) {
  fastboot_targets += [
    {
      name = "fastboot-boot-script"
      outputs = [ "$root_build_dir/boot.sh" ]
      switch = "--fastboot_boot="

      deps = [
        "//build/images/bringup",
        "//build/images/tools:fastboot",
      ]
      metadata = {
        images = [
          {
            label = get_label_info(":$name", "label_with_toolchain")
            name = name
            path = "boot.sh"
            type = "script"
          },
        ]
      }
    },
  ]
}
