-
Notifications
You must be signed in to change notification settings - Fork 1
/
BUILD
107 lines (99 loc) · 1.89 KB
/
BUILD
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
licenses(["notice"])
exports_files([
"LICENSE",
"NOTICE",
])
COPTS = []
LIBS = [
"@libprim//:prim",
]
cc_library(
name = "strop",
srcs = glob(
["src/**/*.cc"],
exclude = ["src/**/*_TEST*"],
),
hdrs = glob(
[
"src/**/*.h",
"src/**/*.tcc",
],
exclude = ["src/**/*_TEST*"],
),
copts = COPTS,
includes = [
"src",
],
visibility = ["//visibility:public"],
deps = LIBS,
alwayslink = 1,
)
cc_library(
name = "test_lib",
testonly = 1,
srcs = glob([
"src/**/*_TEST*.cc",
]),
hdrs = glob([
"src/**/*_TEST*.h",
"src/**/*_TEST*.tcc",
]),
copts = COPTS,
visibility = ["//visibility:private"],
deps = [
":strop",
"@googletest//:gtest_main",
] + LIBS,
alwayslink = 1,
)
cc_test(
name = "strop_test",
args = [
"--gtest_color=yes",
],
copts = COPTS,
visibility = ["//visibility:public"],
deps = [
":test_lib",
] + LIBS,
)
genrule(
name = "lint",
srcs = glob([
"src/**/*.cc",
]) + glob([
"src/**/*.h",
"src/**/*.tcc",
]),
outs = ["linted"],
cmd = """
python3 $(location @cpplint//:cpplint) \
--root=$$(pwd)/src \
--headers=h,tcc \
--extensions=cc,h,tcc \
--quiet $(SRCS) > $@
echo // $$(date) > $@
""",
tools = [
"@cpplint",
],
visibility = ["//visibility:public"],
)
genrule(
name = "format_check",
srcs = glob([
"src/**/*.cc",
"src/**/*.h",
"src/**/*.tcc",
]),
outs = ["format_checked"],
cmd = """
cp $(location @clang_format//file) .clang-format
clang-format --style=file --dry-run --Werror $(SRCS)
echo // $$(date) > $@
""",
tools = [
"@clang_format//file",
],
visibility = ["//visibility:public"],
)