From 217adfa56f2e9dce8d5d85e0d787168103c76233 Mon Sep 17 00:00:00 2001 From: Marc Redemske Date: Mon, 1 Sep 2025 00:26:12 +0200 Subject: [PATCH 1/2] Add `data` attribute to provide additional files to m4 --- m4/rules/m4.bzl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/m4/rules/m4.bzl b/m4/rules/m4.bzl index 86d127c..574e8e6 100644 --- a/m4/rules/m4.bzl +++ b/m4/rules/m4.bzl @@ -29,7 +29,7 @@ def _m4(ctx): if stdout == None: stdout = ctx.actions.declare_file(ctx.attr.name) - inputs = list(ctx.files.srcs) + inputs = list(ctx.files.srcs) + list(ctx.files.data) outputs = [stdout] args = ctx.actions.args() @@ -110,6 +110,12 @@ m4( name. """, ), + "data": attr.label_list( + doc = "List of additional files to m4.", + default = [], + mandatory = False, + allow_files = True, + ), "freeze_state": attr.output( doc = """Optional output file for GNU M4 frozen state. Must have extension `.m4f`. From 40bf2d14ae601403d2aa60b058969b7f8cdc0c61 Mon Sep 17 00:00:00 2001 From: Marc Redemske Date: Mon, 1 Sep 2025 08:53:42 +0200 Subject: [PATCH 2/2] update docs --- docs/rules_m4.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/rules_m4.md b/docs/rules_m4.md index a4066d3..28b62c3 100644 --- a/docs/rules_m4.md +++ b/docs/rules_m4.md @@ -11,7 +11,7 @@ Bazel rules for the m4 macro expander.
 load("@rules_m4//m4:m4.bzl", "m4")
 
-m4(name, srcs, freeze_state, m4_options, output, reload_state)
+m4(name, srcs, data, freeze_state, m4_options, output, reload_state)
 
Perform macro expansion to produce an output file. @@ -38,6 +38,7 @@ m4( | :------------- | :------------- | :------------- | :------------- | :------------- | | name | A unique name for this target. | Name | required | | | srcs | List of source files to macro-expand. | List of labels | required | | +| data | List of additional files to m4. | List of labels | optional | `[]` | | freeze_state | Optional output file for GNU M4 frozen state. Must have extension `.m4f`. | Label; nonconfigurable | optional | `None` | | m4_options | Additional options to pass to the `m4` command.

These will be added to the command args immediately before the source files. | List of strings | optional | `[]` | | output | File to write output to. If unset, defaults to the rule name. | Label; nonconfigurable | optional | `None` |