| # 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. | |
| # Generates FFX subcommand with a plugin commands | |
| # | |
| template("plugins") { | |
| output_name = target_name | |
| if (defined(invoker.output_name)) { | |
| output_name = invoker.output_name | |
| } | |
| includes_subcommands = "false" | |
| if (defined(invoker.plugin_deps)) { | |
| includes_subcommands = "true" | |
| } | |
| includes_execution = "false" | |
| if (defined(invoker.includes_execution)) { | |
| includes_execution = invoker.includes_execution | |
| } | |
| generated_file = "$target_gen_dir/" + output_name | |
| outputs = [ generated_file ] | |
| script_args = [ | |
| "--out", | |
| rebase_path(generated_file), | |
| "--args", | |
| invoker.args, | |
| "--includes_execution", | |
| invoker.includes_execution, | |
| "--includes_subcommands", | |
| includes_subcommands, | |
| "--execution_lib", | |
| invoker.execution_lib, | |
| ] | |
| if (defined(invoker.plugin_deps)) { | |
| libraries = [] | |
| foreach(dep, invoker.plugin_deps) { | |
| libraries += [ get_label_info(dep, "name") ] | |
| } | |
| lib_str = string_join(",", libraries) | |
| script_args += [ | |
| "--deps", | |
| lib_str, | |
| ] | |
| } | |
| if (defined(invoker.sub_command)) { | |
| script_args += [ | |
| "--sub_command", | |
| invoker.sub_command, | |
| ] | |
| } | |
| action(target_name) { | |
| script = "//src/developer/ffx/build/gn_generate_plugins.py" | |
| args = script_args | |
| # Rebuild if the template changes | |
| inputs = [ "//src/developer/ffx/build/templates/plugins.md" ] | |
| } | |
| } |