blob: b203c5ac00cd413025cb252569ccbae413a6c349 [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.
# Create a list of package manifests from a list of GN targets and their
# dependencies.
#
# The list is in JSON format, using the `package_output_manifests` metadata key.
#
# Parameters
#
# filename
# [file path] The output file to create
#
# deps
# [list of targets] List of GN targets (as usual), which are to be walked to
# find fuchsia_package() metadata.
#
# additional_walk_keys [optional]
# [list of strings] An additional set of "barriers" to add to the 'walk_keys'
# list used with 'generated_file()'.
#
# GN Usual
# testonly, visibility
#
template("package_manifests_list") {
walk_keys_entries = [
"package_barrier",
"assembly_package_barrier",
]
if (defined(invoker.additional_walk_keys)) {
walk_keys_entries += invoker.additional_walk_keys
}
generated_file(target_name) {
data_keys = [ "package_output_manifests" ]
walk_keys = walk_keys_entries
outputs = [ invoker.filename ]
output_conversion = "json"
rebase = root_build_dir
forward_variables_from(invoker,
[
"deps",
"testonly",
"visibility",
])
}
}