third_party.pigweed.src/pw_build/input_group.gni
Alexei Frolov 69ad1929c4 Add pw_input_group GN template
This change defines a template that allows listing input file
dependencies in a build target that does not output anything. This code
code was previously inlined in pw_docgen but is extracted into a general
template for use elsewhere.

The pw_build module docs are expanded to describe the GN templates
provided by the module.

Change-Id: I5f2624c792dccb47c379727285f22f05eb05dfdf
2019-12-14 00:11:34 +00:00

37 lines
1.2 KiB
Plaintext

# Copyright 2019 The Pigweed Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
import("python_script.gni")
# Creates an action that doesn't do anything that depends on a list of input
# files. This allows modifications to these files to trigger targets depending
# on this group to rebuild.
#
# This is typically used for targets that don't output any artifacts (e.g.
# metadata-only targets) which list input files relevant to the build.
template("pw_input_group") {
assert(defined(invoker.inputs), "pw_input_group requires some inputs")
pw_python_script(target_name) {
ignore_vars = [
"args",
"script",
"stamp",
]
forward_variables_from(invoker, "*", ignore_vars)
script = "$dir_pw_build/py/nop.py"
stamp = true
}
}