-
Notifications
You must be signed in to change notification settings - Fork 444
Expand file tree
/
Copy pathconfigure_template.bzl.patch
More file actions
43 lines (43 loc) · 1.45 KB
/
configure_template.bzl.patch
File metadata and controls
43 lines (43 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
--- /dev/null 2022-10-16 17:03:40.015999686 +0000
+++ bazel/configure_template.bzl 2022-11-07 22:08:29.135633955 +0000
@@ -0,0 +1,40 @@
+# Copyright 2022 Google LLC
+#
+# 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.
+
+"""
+Define a rule to configure .in template files.
+
+We use a custom *.BUILD file for crc32c as it does not support Bazel.
+It requires configuring a `.in` file. This creates a rule to perform this
+configuration.
+"""
+
+def _configure_template_impl(ctx):
+ ctx.actions.expand_template(
+ template = ctx.file.template,
+ output = ctx.outputs.output,
+ substitutions = ctx.attr.substitutions,
+ )
+
+configure_template = rule(
+ implementation = _configure_template_impl,
+ attrs = {
+ "substitutions": attr.string_dict(default = {}),
+ "template": attr.label(
+ allow_single_file = True,
+ mandatory = True,
+ ),
+ "output": attr.output(mandatory = True),
+ },
+)