diff options
author | gunan <gunan@google.com> | 2016-12-24 00:58:52 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-24 00:58:52 -0800 |
commit | f991800a64862f283d2d805d2becfd7ae49ed9a1 (patch) | |
tree | 43fefbf1e75b54cc41bb809681e67af640f2ed8d /third_party/common.bzl | |
parent | 143f6d77dcf419f1d36fb9cb4d7e4624eea0bdcd (diff) | |
parent | 9bffde4980cbe1a9a77d6ab6962ec89293e7f5b6 (diff) |
Merge pull request #6462 from gunan/windows_fix
Write rules to construct headers for jpeg-turbo using existing templates.
Diffstat (limited to 'third_party/common.bzl')
-rw-r--r-- | third_party/common.bzl | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/third_party/common.bzl b/third_party/common.bzl new file mode 100644 index 0000000000..db981a5e31 --- /dev/null +++ b/third_party/common.bzl @@ -0,0 +1,43 @@ +# Rule for simple expansion of template files. This performs a simple +# search over the template file for the keys in substitutions, +# and replaces them with the corresponding values. +# +# Typical usage: +# load("/tools/build_rules/template_rule", "expand_header_template") +# template_rule( +# name = "ExpandMyTemplate", +# src = "my.template", +# out = "my.txt", +# substitutions = { +# "$VAR1": "foo", +# "$VAR2": "bar", +# } +# ) +# +# Args: +# name: The name of the rule. +# template: The template file to expand +# out: The destination of the expanded file +# substitutions: A dictionary mapping strings to their substitutions + +def template_rule_impl(ctx): + ctx.template_action( + template = ctx.file.src, + output = ctx.outputs.out, + substitutions = ctx.attr.substitutions, + ) + +template_rule = rule( + attrs = { + "src": attr.label( + mandatory = True, + allow_files = True, + single_file = True, + ), + "substitutions": attr.string_dict(mandatory = True), + "out": attr.output(mandatory = True), + }, + # output_to_genfiles is required for header files. + output_to_genfiles = True, + implementation = template_rule_impl, +) |