| # 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. |
| |
| # Verifies that there are no duplicate headers in an SDK library declaration. |
| # On failure, an error message will be printed indicating which headers |
| # are duplicated. |
| # |
| # Parameters |
| # |
| # target_label (required) |
| # GN label of the SDK target that exposes the headers. Used in |
| # error messages (i.e. not a dependency). |
| # |
| # headers (required) |
| # A list of header paths. |
| # Type: list of strings. |
| # |
| # testonly, visibility |
| # Usual GN meaning. |
| # |
| template("verify_public_headers") { |
| _stamp_file = "$target_gen_dir/$target_name.stamp" |
| |
| action(target_name) { |
| forward_variables_from(invoker, |
| [ |
| "testonly", |
| "visibility", |
| ]) |
| script = "//build/cpp/verify_public_headers.py" |
| inputs = [] |
| outputs = [ _stamp_file ] |
| args = [ |
| "--gn-label", |
| get_label_info(invoker.target_label, "label_no_toolchain"), |
| "--stamp-file", |
| rebase_path(_stamp_file, root_build_dir), |
| ] + invoker.headers |
| } |
| } |