blob: 1001f529631245d9b15c9469917033fc61e6a585 [file] [log] [blame]
# Copyright 2020 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.
# Validates a component manifest against a package manifest.
# Checks that the component manifest doesn't reference files that are not
# present in the package.
#
# Parameters
#
# component_manifest (optional)
# A component manifest to validate.
# If not specified, then must specify component_manifests_rspfile.
# Must specify exactly one of component_manifest, component_manifests_rspfile.
# Type: path
#
# component_manifests_rspfile (optional)
# A file containing paths to component manifests to validate.
# Must specify exactly one of component_manifest, component_manifests_rspfile.
# Type: path
#
# package_manifest (required)
# A package manifest to validate against.
# Type: path
#
# deps
# testonly
# visibility
template("validate_component_manifest_references") {
assert(
defined(invoker.component_manifest) ||
defined(invoker.component_manifests_rspfile),
"Must specify exactly one of component_manifest, component_manifests_rspfile")
assert(
!defined(invoker.component_manifest) ||
!defined(invoker.component_manifests_rspfile),
"Must specify exactly one of component_manifest, component_manifests_rspfile")
assert(defined(invoker.package_manifest), "Must specify package_manifest")
stamp_file = "$target_gen_dir/$target_name.action.stamp"
action(target_name) {
forward_variables_from(invoker,
[
"deps",
"testonly",
"visibility",
])
script = "//tools/cmc/build/validate_component_manifest_references.py"
inputs = [ invoker.package_manifest ]
outputs = [ stamp_file ]
args = [
"--package_manifest",
rebase_path(invoker.package_manifest, root_build_dir),
"--stamp",
rebase_path(stamp_file, root_build_dir),
]
if (defined(invoker.component_manifest)) {
inputs += [ invoker.component_manifest ]
args += [
"--component_manifests",
rebase_path(invoker.component_manifest, root_build_dir),
]
}
if (defined(invoker.component_manifests_rspfile)) {
inputs += [ invoker.component_manifests_rspfile ]
args += [
"--component_manifests",
"@" + rebase_path(invoker.component_manifests_rspfile, root_build_dir),
]
}
}
}