blob: 727090441d3214c191dc041d9687c0932ffa2e0e [file] [log] [blame]
# 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/python/python_action.gni")
# Generates a list of the implicit inputs to image assembly.
# This target can be used as a `hermetic_inputs_target` and the output
# can be passed as a `hermetic_inputs_file`.
#
# Example:
# image_assembly_config = "image_assembly_config.json"
# inputs_file = "${target_out_dir}/hermetic_inputs"
#
# hermetic_inputs_for_image_assembly("assembly_inputs") {
# image_assembly_config = image_assembly_config
# images_config = images_config
# output = inputs_file
# }
#
# ffx_action("image_assembly") {
# hermetic_inputs_target = ":assembly_inputs"
# hermetic_inputs_file = inputs_file
# ...
# }
#
# Arguments
# image_assembly_config (required)
# [path] The path to the image assembly config.
#
# output (required)
# [path] Where to write the output hermetic inputs list.
#
template("hermetic_inputs_for_image_assembly") {
assert(defined(invoker.image_assembly_config),
"Need to define image_assembly_config")
assert(defined(invoker.output), "Need to define output")
python_action(target_name) {
forward_variables_from(invoker,
[
"deps",
"testonly",
"visibility",
])
binary_label = "//build/assembly/scripts:hermetic_inputs_for_image_assembly"
depfile_path = "${target_out_dir}/${target_name}_depfile"
inputs = [ invoker.image_assembly_config ]
outputs = [ invoker.output ]
depfile = depfile_path
args = [
"--image-assembly-config",
rebase_path(invoker.image_assembly_config, root_build_dir),
"--output",
rebase_path(invoker.output, root_build_dir),
"--depfile",
rebase_path(depfile_path, root_build_dir),
]
}
}