-
-
Notifications
You must be signed in to change notification settings - Fork 8.4k
/
Copy pathrustfmt_wrapper.bzl
47 lines (41 loc) · 1.41 KB
/
rustfmt_wrapper.bzl
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
44
45
46
47
load("@apple_rules_lint//lint:defs.bzl", "get_lint_config")
load(
"@rules_rust//rust:defs.bzl",
"rustfmt_test",
_rust_binary = "rust_binary",
_rust_library = "rust_library",
_rust_test = "rust_test",
_rust_test_suite = "rust_test_suite",
)
def _wrap_with_fmt_test(name, tags):
config = get_lint_config("rust-rustfmt", tags)
if config:
rustfmt_test(
name = "%s-fmt" % name,
targets = [
":%s" % name,
],
tags = [
"lint",
"rust-rustfmt",
"rustfmt",
],
)
def rust_library(name, **kwargs):
_rust_library(name = name, **kwargs)
_wrap_with_fmt_test(name, kwargs.get("tags", []))
def rust_binary(name, **kwargs):
_rust_binary(name = name, **kwargs)
_wrap_with_fmt_test(name, kwargs.get("tags", []))
def rust_test(name, **kwargs):
_rust_test(name = name, **kwargs)
_wrap_with_fmt_test(name, kwargs.get("tags", []))
def rust_test_suite(name, srcs = [], **kwargs):
_rust_test_suite(name = name, srcs = srcs, **kwargs)
for src in srcs:
if not src.endswith(".rs"):
fail("srcs should have `.rs` extensions")
# Prefixed with `name` to allow parameterization with macros
# The test name should not end with `.rs`
test_name = name + "_" + src[:-3]
_wrap_with_fmt_test(test_name, kwargs.get("tags", []))