blob: 4c9f2c3a8d01700be961b4fc44916500a4c5f788 [file] [log] [blame] [edit]
# Copyright 2023 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.
# Parameters
#
# atom_target (required)
# The taret for which to generate runtime dependencies metadata.
#
# runtime_deps_file (required)
# Path to the output file listing the runtime dependencies.
#
template("generate_runtime_deps") {
# Collect all sdk_runtime_deps metadata entry from the dependencies of
# `atom_target`. The metadata.sdk_runtime_deps list entries should be scopes
# describing shared libraries, with the following schema:
#
# label: the GN label that defines the shared library target, including
# its toolchain suffix, e.g.
# '//sdk/lib/fdio:fdio(//build/toolchain/fuchsa:x64-shared)'
#
# source: (optional) the source path to the shared library binary,
# relative to the build directory (e.g. 'x64-shared/libfdio.so').
# This MUST ONLY be set for regular shared_library() instances
# (i.e. not those from sdk_shared_library()).
#
# sdk_id: (optional) the SDK atom id that generates the library
# (e.g. '//pkg:fdio'). This MUST ONLY be set for sdk_shared_library()
# targets, and not regular shared_library() ones.
#
generated_file(target_name) {
deps = [ invoker.atom_target ]
outputs = [ invoker.runtime_deps_file ]
output_conversion = "json"
data_keys = [ "sdk_runtime_deps" ]
walk_keys = [ "sdk_runtime_deps_barrier" ]
}
}