expand_template
Public API for expand template
Rules
expand_template_rule
Template expansion
This performs a simple search over the template file for the keys in substitutions, and replaces them with the corresponding values.
Values may also use location templates as documented in
expand_locations
as well as configuration variables
such as $(BINDIR)
, $(TARGET_CPU)
, and $(COMPILATION_MODE)
as documented in
expand_variables.
Example usage (generated):
load("@aspect_bazel_lib//lib:expand_template.bzl", "expand_template_rule")
expand_template_rule(
# A unique name for this target.
name = "",
# The template file to expand.
template = "",
)
name
Required name.
A unique name for this target.
data
Optional list of labels.
Default: []
List of targets for additional lookup information.
is_executable
Optional boolean.
Default: False
Whether to mark the output file as executable.
out
Optional label.
Default: None
Where to write the expanded file.
If the template
is a source file, then out
defaults to
be named the same as the template file and outputted to the same
workspace-relative path. In this case there will be no pre-declared
label for the output file. It can be referenced by the target label
instead. This pattern is similar to copy_to_bin
but with substitutions on
the copy.
Otherwise, out
defaults to [name].txt
.
stamp_substitutions
Optional dictionary: String → String.
Default: {}
Mapping of strings to substitutions.
There are overlaid on top of substitutions when stamping is enabled for the target.
Substitutions can contain $(execpath :target) and $(rootpath :target) expansions, $(MAKEVAR) expansions and {{STAMP_VAR}} expansions when stamping is enabled for the target.
substitutions
Optional dictionary: String → String.
Default: {}
Mapping of strings to substitutions.
Substitutions can contain $(execpath :target) and $(rootpath :target) expansions, $(MAKEVAR) expansions and {{STAMP_VAR}} expansions when stamping is enabled for the target.
template
Required label.
The template file to expand.
stamp
Optional integer.
Default: -1
Whether to encode build information into the output. Possible values:
stamp = 1
: Always stamp the build information into the output, even in --nostamp builds. This setting should be avoided, since it is non-deterministic. It potentially causes remote cache misses for the target and any downstream actions that depend on the result.stamp = 0
: Never stamp, instead replace build information by constant values. This gives good build result caching.stamp = -1
: Embedding of build information is controlled by the --[no]stamp flag. Stamped targets are not rebuilt unless their dependencies change.
Macros and Functions
expand_template
Wrapper macro for expand_template_rule
.
Example usage (generated):
load("@aspect_bazel_lib//lib:expand_template.bzl", "expand_template")
expand_template(
# name of resulting rule
name = "",
# the label of a template file, or a list of strings
template = None,
)
name
Required.
name of resulting rule
template
Required.
the label of a template file, or a list of strings which are lines representing the content of the template.
kwargs
Optional.
other named parameters to expand_template_rule
.