blob: 20141677acc5c5bb548295c23d8d113e2f43d486 [file] [log] [blame]
# Copyright 2021 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.
# Asserts that there are no dependencies on fuchsia_driver targets
# unless it's an indirect dependency through the fuchsia_driver_component
# target. In other words, asserts that all fuchsia_driver targets are
# being used through a fuchsia_driver_component. This shows that there
# aren't any drivers that are missing a component manifest.
#
# Parameters
# deps
# testonly
# visibility
template("assert_driver_components") {
metadata_check_target = "${target_name}_metadata_check"
metadata_check_output = "${target_gen_dir}/${target_name}_metadata_output"
generated_file(metadata_check_target) {
forward_variables_from(invoker, [ "testonly" ])
visibility = [ ":*" ]
outputs = [ metadata_check_output ]
deps = invoker.deps
data_keys = [ "fuchsia_driver_labels" ]
walk_keys = [ "driver_component_barrier" ]
}
action(target_name) {
forward_variables_from(invoker, [ "testonly" ])
deps = [ ":${metadata_check_target}" ]
script = "//build/drivers/assert_driver_components.py"
inputs = [ metadata_check_output ]
outputs = [ "${target_out_dir}/${target_name}_assert_driver_components" ]
args = [
"--metadata_file",
rebase_path(metadata_check_output, root_build_dir),
"--output",
rebase_path(outputs[0], root_build_dir),
]
}
}