Skip to content

Commit 4d60ff8

Browse files
committed
Update ab.
1 parent 311ff4a commit 4d60ff8

File tree

3 files changed

+50
-51
lines changed

3 files changed

+50
-51
lines changed

arch/build.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from build.c import cxxlibrary
2-
from build.protobuf import proto, protocc
2+
from build.protobuf import proto, protocc, protolib
33
from os.path import *
44
from glob import glob
55
import sys
@@ -41,9 +41,9 @@
4141
)
4242
]
4343

44-
proto(
44+
protolib(
4545
name="proto",
46-
deps=ps + ["lib/config+common_proto"],
46+
srcs=ps + ["lib/config+common_proto"],
4747
)
4848

4949
cxxlibrary(name="proto_lib", deps=pls)

build/protobuf.py

Lines changed: 45 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -31,54 +31,53 @@ def proto(self, name, srcs: Targets = [], deps: Targets = []):
3131
]
3232
)
3333

34-
if srcs:
35-
dirs = sorted({"$[dir]/" + dirname(f) for f in filenamesof(srcs)})
36-
simplerule(
37-
replaces=self,
38-
ins=srcs,
39-
outs=[f"={self.localname}.descriptor"],
40-
deps=protodeps,
41-
commands=(
42-
["mkdir -p " + (" ".join(dirs))]
43-
+ [f"$(CP) {f} $[dir]/{f}" for f in filenamesof(srcs)]
44-
+ [
45-
"cd $[dir] && "
46-
+ (
47-
" ".join(
48-
[
49-
"$(PROTOC)",
50-
"--proto_path=.",
51-
"--include_source_info",
52-
f"--descriptor_set_out={self.localname}.descriptor",
53-
]
54-
+ (
55-
[f"--descriptor_set_in={descriptorlist}"]
56-
if descriptorlist
57-
else []
58-
)
59-
+ ["$[ins]"]
34+
dirs = sorted({"$[dir]/" + dirname(f) for f in filenamesof(srcs)})
35+
simplerule(
36+
replaces=self,
37+
ins=srcs,
38+
outs=[f"={self.localname}.descriptor"],
39+
deps=protodeps,
40+
commands=(
41+
["mkdir -p " + (" ".join(dirs))]
42+
+ [f"$(CP) {f} $[dir]/{f}" for f in filenamesof(srcs)]
43+
+ [
44+
"cd $[dir] && "
45+
+ (
46+
" ".join(
47+
[
48+
"$(PROTOC)",
49+
"--proto_path=.",
50+
"--include_source_info",
51+
f"--descriptor_set_out={self.localname}.descriptor",
52+
]
53+
+ (
54+
[f"--descriptor_set_in={descriptorlist}"]
55+
if descriptorlist
56+
else []
6057
)
58+
+ ["$[ins]"]
6159
)
62-
]
63-
),
64-
label="PROTO",
65-
args={
66-
"protosrcs": filenamesof(srcs),
67-
"protodeps": set(protodeps) | {self},
68-
},
69-
)
70-
else:
71-
simplerule(
72-
replaces=self,
73-
ins=protodeps,
74-
outs=["=stamp"],
75-
commands=["touch $[outs]"],
76-
label="PROTO",
77-
args={
78-
"protosrcs": [],
79-
"protodeps": set(protodeps),
80-
},
81-
)
60+
)
61+
]
62+
),
63+
label="PROTO",
64+
args={
65+
"protosrcs": filenamesof(srcs),
66+
"protodeps": set(protodeps) | {self},
67+
},
68+
)
69+
70+
71+
@Rule
72+
def protolib(self, name, srcs: Targets = []):
73+
simplerule(
74+
replaces=self,
75+
label="PROTOLIB",
76+
args={
77+
"protosrcs": collectattrs(targets=srcs, name="protosrcs"),
78+
"protodeps": set(_getprotodeps(srcs)),
79+
},
80+
)
8281

8382

8483
@Rule

build/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def test(
7878
replaces=self,
7979
ins=[command],
8080
outs=["=sentinel"],
81-
commands=["$[ins[0]]", "touch $[outs]"],
81+
commands=["$[ins[0]]", "touch $[outs[0]]"],
8282
deps=deps,
8383
label=label,
8484
)
@@ -87,7 +87,7 @@ def test(
8787
replaces=self,
8888
ins=ins,
8989
outs=["=sentinel"],
90-
commands=commands + ["touch $[outs]"],
90+
commands=commands + ["touch $[outs[0]]"],
9191
deps=deps,
9292
label=label,
9393
)

0 commit comments

Comments
 (0)