Update ab.

This commit is contained in:
David Given
2025-03-20 02:11:10 +01:00
parent 311ff4a89f
commit 4d60ff8e67
3 changed files with 50 additions and 51 deletions

View File

@@ -1,5 +1,5 @@
from build.c import cxxlibrary
from build.protobuf import proto, protocc
from build.protobuf import proto, protocc, protolib
from os.path import *
from glob import glob
import sys
@@ -41,9 +41,9 @@ for a in archs:
)
]
proto(
protolib(
name="proto",
deps=ps + ["lib/config+common_proto"],
srcs=ps + ["lib/config+common_proto"],
)
cxxlibrary(name="proto_lib", deps=pls)

View File

@@ -31,54 +31,53 @@ def proto(self, name, srcs: Targets = [], deps: Targets = []):
]
)
if srcs:
dirs = sorted({"$[dir]/" + dirname(f) for f in filenamesof(srcs)})
simplerule(
replaces=self,
ins=srcs,
outs=[f"={self.localname}.descriptor"],
deps=protodeps,
commands=(
["mkdir -p " + (" ".join(dirs))]
+ [f"$(CP) {f} $[dir]/{f}" for f in filenamesof(srcs)]
+ [
"cd $[dir] && "
+ (
" ".join(
[
"$(PROTOC)",
"--proto_path=.",
"--include_source_info",
f"--descriptor_set_out={self.localname}.descriptor",
]
+ (
[f"--descriptor_set_in={descriptorlist}"]
if descriptorlist
else []
)
+ ["$[ins]"]
dirs = sorted({"$[dir]/" + dirname(f) for f in filenamesof(srcs)})
simplerule(
replaces=self,
ins=srcs,
outs=[f"={self.localname}.descriptor"],
deps=protodeps,
commands=(
["mkdir -p " + (" ".join(dirs))]
+ [f"$(CP) {f} $[dir]/{f}" for f in filenamesof(srcs)]
+ [
"cd $[dir] && "
+ (
" ".join(
[
"$(PROTOC)",
"--proto_path=.",
"--include_source_info",
f"--descriptor_set_out={self.localname}.descriptor",
]
+ (
[f"--descriptor_set_in={descriptorlist}"]
if descriptorlist
else []
)
+ ["$[ins]"]
)
]
),
label="PROTO",
args={
"protosrcs": filenamesof(srcs),
"protodeps": set(protodeps) | {self},
},
)
else:
simplerule(
replaces=self,
ins=protodeps,
outs=["=stamp"],
commands=["touch $[outs]"],
label="PROTO",
args={
"protosrcs": [],
"protodeps": set(protodeps),
},
)
)
]
),
label="PROTO",
args={
"protosrcs": filenamesof(srcs),
"protodeps": set(protodeps) | {self},
},
)
@Rule
def protolib(self, name, srcs: Targets = []):
simplerule(
replaces=self,
label="PROTOLIB",
args={
"protosrcs": collectattrs(targets=srcs, name="protosrcs"),
"protodeps": set(_getprotodeps(srcs)),
},
)
@Rule

View File

@@ -78,7 +78,7 @@ def test(
replaces=self,
ins=[command],
outs=["=sentinel"],
commands=["$[ins[0]]", "touch $[outs]"],
commands=["$[ins[0]]", "touch $[outs[0]]"],
deps=deps,
label=label,
)
@@ -87,7 +87,7 @@ def test(
replaces=self,
ins=ins,
outs=["=sentinel"],
commands=commands + ["touch $[outs]"],
commands=commands + ["touch $[outs[0]]"],
deps=deps,
label=label,
)