blob: 6656009e56d5e528010bd31832c4d06afdaa502e [file] [log] [blame]
# 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.
import("//sdk/config.gni")
import("//build/sdk/config.gni")
# Verifies that the contents of the IDK have not changed.
#
# Parameters
#
# golden (required)
# Path to the golden file listing the current IDK contents.
#
# idk_exported_label (required)
# Label for the `idk` build rule.
#
# idk_name (required)
# Name of the IDK, i.e., the directory name under $root_build_dir/sdk/exported
#
# inherit_golden (optional)
# Path to a golden file that `golden` can be thought of as "extending". The
# golden file we compare to will effectively be the concatenation of `golden`
# and `inherit_golden`, if the latter is supplied.
#
template("sdk_final_manifest_golden") {
assert(defined(invoker.golden), "Must provide path to golden file")
assert(defined(invoker.idk_exported_label),
"Must provide GN label for the final IDK")
assert(defined(invoker.idk_name), "Must provide the name of the IDK")
action(target_name) {
forward_variables_from(invoker, [ "testonly" ])
script = "//build/sdk/verify_final_manifest.py"
_manifest_path =
"$root_build_dir/sdk/exported/${invoker.idk_name}/meta/manifest.json"
inputs = [ _manifest_path ]
args = [
"--manifest",
rebase_path(_manifest_path, root_build_dir),
]
inputs += [ invoker.golden ]
args += [
"--golden",
rebase_path(invoker.golden, root_build_dir),
]
if (defined(invoker.inherit_golden)) {
inputs += [ invoker.inherit_golden ]
args += [
"--inherit_golden",
rebase_path(invoker.inherit_golden, root_build_dir),
]
}
if (!sdk_cross_compile_host_tools) {
args += [
"--only_verify_host_tools_for_cpu",
host_cpu,
]
}
outputs = [ "$target_gen_dir/${target_name}.updated_golden" ]
args += [
"--updated_golden",
rebase_path(outputs[0], root_build_dir),
]
args += [
"--label",
get_label_info(":${target_name}", "label_with_toolchain"),
]
deps = [ invoker.idk_exported_label ]
}
}