import("//build/arch/common.gni")

# Helper to build a hypervisor image
template("hypervisor") {
  # Link objects together
  executable("${target_name}__elf") {
    forward_variables_from(invoker,
                           [
                             "cflags",
                             "cflags_c",
                             "defines",
                             "deps",
                             "public_deps",
                             "sources",
                             "test_only",
                           ])
    output_name = "${invoker.target_name}.elf"
    ldflags = [
      "-pie",
      "-T",
      rebase_path("//build/image/hypervisor.ld"),
      "--defsym=PREFERRED_LOAD_ADDRESS=${arch_hypervisor_load_address}",
    ]
    visibility = [ ":${invoker.target_name}" ]
  }

  action(target_name) {
    file_root = rebase_path("${root_out_dir}/${target_name}")
    elf_file = "${file_root}.elf"
    bin_file = "${file_root}.bin"

    script = "//build/image/convert_to_binary.py"
    deps = [
      ":${target_name}__elf",
    ]
    args = [
      "--tool_prefix",
      arch_tool_prefix,
      "--input",
      elf_file,
      "--output",
      bin_file,
    ]
    outputs = [
      "${target_out_dir}/${target_name}.bin",
    ]
  }
}
