mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
Update ab.
This commit is contained in:
@@ -11,6 +11,7 @@ CFLAGS ?= -g -Og
|
||||
LDFLAGS ?= -g
|
||||
PKG_CONFIG ?= pkg-config
|
||||
ECHO ?= echo
|
||||
CP ?= cp
|
||||
TARGETS ?= +all
|
||||
|
||||
ifdef VERBOSE
|
||||
|
||||
@@ -472,7 +472,7 @@ def simplerule(
|
||||
name=self.name,
|
||||
ins=ins + deps,
|
||||
outs=outs,
|
||||
label=self.templateexpand("{label} {name}"),
|
||||
label=self.templateexpand("{label} {name}") if label else None,
|
||||
cmds=cs,
|
||||
)
|
||||
|
||||
@@ -497,8 +497,8 @@ def export(self, name=None, items: TargetsMap = {}, deps: Targets = []):
|
||||
cwd=self.cwd,
|
||||
ins=[srcs[0]],
|
||||
outs=[destf],
|
||||
commands=["cp %s %s" % (srcs[0], destf)],
|
||||
label="CP",
|
||||
commands=["$(CP) %s %s" % (srcs[0], destf)],
|
||||
label="",
|
||||
)
|
||||
subrule.materialise()
|
||||
|
||||
|
||||
38
build/c.py
38
build/c.py
@@ -95,7 +95,9 @@ def cxxfile(
|
||||
def findsources(name, srcs, deps, cflags, toolchain, filerule, cwd):
|
||||
headers = filenamesmatchingof(srcs, "*.h")
|
||||
cflags = cflags + ["-I" + dirname(h) for h in headers]
|
||||
deps = deps + headers
|
||||
|
||||
for d in deps:
|
||||
headers += d.args.get("cheaders", [d])
|
||||
|
||||
objs = []
|
||||
for s in flatten(srcs):
|
||||
@@ -103,7 +105,7 @@ def findsources(name, srcs, deps, cflags, toolchain, filerule, cwd):
|
||||
filerule(
|
||||
name=join(name, f.removeprefix("$(OBJ)/")),
|
||||
srcs=[f],
|
||||
deps=deps,
|
||||
deps=headers,
|
||||
cflags=cflags,
|
||||
toolchain=toolchain,
|
||||
cwd=cwd,
|
||||
@@ -129,8 +131,16 @@ def cheaders(
|
||||
caller_cflags=[],
|
||||
deps: Targets = None,
|
||||
):
|
||||
hdr_deps = []
|
||||
for d in deps:
|
||||
hdr_deps += d.args.get("cheaders", [d])
|
||||
|
||||
hdr_caller_cflags = collectattrs(
|
||||
targets=hdr_deps, name="caller_cflags", initial=caller_cflags
|
||||
)
|
||||
|
||||
cs = []
|
||||
ins = list(hdrs.values())
|
||||
ins = hdrs.values()
|
||||
outs = []
|
||||
i = 0
|
||||
for dest, src in hdrs.items():
|
||||
@@ -139,7 +149,7 @@ def cheaders(
|
||||
len(s) == 1
|
||||
), "the target of a header must return exactly one file"
|
||||
|
||||
cs += ["cp {ins[" + str(i) + "]} {outs[" + str(i) + "]}"]
|
||||
cs += ["$(CP) {ins[" + str(i) + "]} {outs[" + str(i) + "]}"]
|
||||
outs += ["=" + dest]
|
||||
i = i + 1
|
||||
|
||||
@@ -148,9 +158,9 @@ def cheaders(
|
||||
ins=ins,
|
||||
outs=outs,
|
||||
commands=cs,
|
||||
deps=deps,
|
||||
deps=hdr_deps,
|
||||
label="CHEADERS",
|
||||
args={"caller_cflags": caller_cflags + ["-I" + self.dir]},
|
||||
args={"caller_cflags": hdr_caller_cflags + ["-I" + self.dir]},
|
||||
)
|
||||
|
||||
|
||||
@@ -174,7 +184,7 @@ def libraryimpl(
|
||||
cheaders(
|
||||
replaces=self,
|
||||
hdrs=hdrs,
|
||||
deps=targetswithtraitsof(deps, "cheaders"),
|
||||
deps=deps,
|
||||
caller_cflags=caller_cflags,
|
||||
)
|
||||
return
|
||||
@@ -182,7 +192,7 @@ def libraryimpl(
|
||||
hr = cheaders(
|
||||
name=self.localname + "_hdrs",
|
||||
hdrs=hdrs,
|
||||
deps=targetswithtraitsof(deps, "cheaders"),
|
||||
deps=deps,
|
||||
caller_cflags=caller_cflags,
|
||||
)
|
||||
hr.materialise()
|
||||
@@ -191,7 +201,7 @@ def libraryimpl(
|
||||
objs = findsources(
|
||||
self.localname,
|
||||
srcs,
|
||||
targetswithtraitsof(deps, "cheaders"),
|
||||
deps,
|
||||
cflags,
|
||||
toolchain,
|
||||
kind,
|
||||
@@ -205,13 +215,15 @@ def libraryimpl(
|
||||
label=label,
|
||||
commands=commands,
|
||||
args={
|
||||
"caller_cflags": collectattrs(
|
||||
targets=deps + ([hr] if hr else []), name="caller_cflags"
|
||||
),
|
||||
"caller_ldflags": collectattrs(
|
||||
targets=deps, name="caller_ldflags", initial=caller_ldflags
|
||||
),
|
||||
},
|
||||
}
|
||||
| (
|
||||
{"cheaders": [hr], "caller_cflags": hr.args["caller_cflags"]}
|
||||
if hr
|
||||
else {}
|
||||
),
|
||||
traits={"cheaders"},
|
||||
)
|
||||
self.outs = self.outs + (hr.outs if hr else [])
|
||||
|
||||
Reference in New Issue
Block a user