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
|
LDFLAGS ?= -g
|
||||||
PKG_CONFIG ?= pkg-config
|
PKG_CONFIG ?= pkg-config
|
||||||
ECHO ?= echo
|
ECHO ?= echo
|
||||||
|
CP ?= cp
|
||||||
TARGETS ?= +all
|
TARGETS ?= +all
|
||||||
|
|
||||||
ifdef VERBOSE
|
ifdef VERBOSE
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ def simplerule(
|
|||||||
name=self.name,
|
name=self.name,
|
||||||
ins=ins + deps,
|
ins=ins + deps,
|
||||||
outs=outs,
|
outs=outs,
|
||||||
label=self.templateexpand("{label} {name}"),
|
label=self.templateexpand("{label} {name}") if label else None,
|
||||||
cmds=cs,
|
cmds=cs,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -497,8 +497,8 @@ def export(self, name=None, items: TargetsMap = {}, deps: Targets = []):
|
|||||||
cwd=self.cwd,
|
cwd=self.cwd,
|
||||||
ins=[srcs[0]],
|
ins=[srcs[0]],
|
||||||
outs=[destf],
|
outs=[destf],
|
||||||
commands=["cp %s %s" % (srcs[0], destf)],
|
commands=["$(CP) %s %s" % (srcs[0], destf)],
|
||||||
label="CP",
|
label="",
|
||||||
)
|
)
|
||||||
subrule.materialise()
|
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):
|
def findsources(name, srcs, deps, cflags, toolchain, filerule, cwd):
|
||||||
headers = filenamesmatchingof(srcs, "*.h")
|
headers = filenamesmatchingof(srcs, "*.h")
|
||||||
cflags = cflags + ["-I" + dirname(h) for h in headers]
|
cflags = cflags + ["-I" + dirname(h) for h in headers]
|
||||||
deps = deps + headers
|
|
||||||
|
for d in deps:
|
||||||
|
headers += d.args.get("cheaders", [d])
|
||||||
|
|
||||||
objs = []
|
objs = []
|
||||||
for s in flatten(srcs):
|
for s in flatten(srcs):
|
||||||
@@ -103,7 +105,7 @@ def findsources(name, srcs, deps, cflags, toolchain, filerule, cwd):
|
|||||||
filerule(
|
filerule(
|
||||||
name=join(name, f.removeprefix("$(OBJ)/")),
|
name=join(name, f.removeprefix("$(OBJ)/")),
|
||||||
srcs=[f],
|
srcs=[f],
|
||||||
deps=deps,
|
deps=headers,
|
||||||
cflags=cflags,
|
cflags=cflags,
|
||||||
toolchain=toolchain,
|
toolchain=toolchain,
|
||||||
cwd=cwd,
|
cwd=cwd,
|
||||||
@@ -129,8 +131,16 @@ def cheaders(
|
|||||||
caller_cflags=[],
|
caller_cflags=[],
|
||||||
deps: Targets = None,
|
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 = []
|
cs = []
|
||||||
ins = list(hdrs.values())
|
ins = hdrs.values()
|
||||||
outs = []
|
outs = []
|
||||||
i = 0
|
i = 0
|
||||||
for dest, src in hdrs.items():
|
for dest, src in hdrs.items():
|
||||||
@@ -139,7 +149,7 @@ def cheaders(
|
|||||||
len(s) == 1
|
len(s) == 1
|
||||||
), "the target of a header must return exactly one file"
|
), "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]
|
outs += ["=" + dest]
|
||||||
i = i + 1
|
i = i + 1
|
||||||
|
|
||||||
@@ -148,9 +158,9 @@ def cheaders(
|
|||||||
ins=ins,
|
ins=ins,
|
||||||
outs=outs,
|
outs=outs,
|
||||||
commands=cs,
|
commands=cs,
|
||||||
deps=deps,
|
deps=hdr_deps,
|
||||||
label="CHEADERS",
|
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(
|
cheaders(
|
||||||
replaces=self,
|
replaces=self,
|
||||||
hdrs=hdrs,
|
hdrs=hdrs,
|
||||||
deps=targetswithtraitsof(deps, "cheaders"),
|
deps=deps,
|
||||||
caller_cflags=caller_cflags,
|
caller_cflags=caller_cflags,
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
@@ -182,7 +192,7 @@ def libraryimpl(
|
|||||||
hr = cheaders(
|
hr = cheaders(
|
||||||
name=self.localname + "_hdrs",
|
name=self.localname + "_hdrs",
|
||||||
hdrs=hdrs,
|
hdrs=hdrs,
|
||||||
deps=targetswithtraitsof(deps, "cheaders"),
|
deps=deps,
|
||||||
caller_cflags=caller_cflags,
|
caller_cflags=caller_cflags,
|
||||||
)
|
)
|
||||||
hr.materialise()
|
hr.materialise()
|
||||||
@@ -191,7 +201,7 @@ def libraryimpl(
|
|||||||
objs = findsources(
|
objs = findsources(
|
||||||
self.localname,
|
self.localname,
|
||||||
srcs,
|
srcs,
|
||||||
targetswithtraitsof(deps, "cheaders"),
|
deps,
|
||||||
cflags,
|
cflags,
|
||||||
toolchain,
|
toolchain,
|
||||||
kind,
|
kind,
|
||||||
@@ -205,13 +215,15 @@ def libraryimpl(
|
|||||||
label=label,
|
label=label,
|
||||||
commands=commands,
|
commands=commands,
|
||||||
args={
|
args={
|
||||||
"caller_cflags": collectattrs(
|
|
||||||
targets=deps + ([hr] if hr else []), name="caller_cflags"
|
|
||||||
),
|
|
||||||
"caller_ldflags": collectattrs(
|
"caller_ldflags": collectattrs(
|
||||||
targets=deps, name="caller_ldflags", initial=caller_ldflags
|
targets=deps, name="caller_ldflags", initial=caller_ldflags
|
||||||
),
|
),
|
||||||
},
|
}
|
||||||
|
| (
|
||||||
|
{"cheaders": [hr], "caller_cflags": hr.args["caller_cflags"]}
|
||||||
|
if hr
|
||||||
|
else {}
|
||||||
|
),
|
||||||
traits={"cheaders"},
|
traits={"cheaders"},
|
||||||
)
|
)
|
||||||
self.outs = self.outs + (hr.outs if hr else [])
|
self.outs = self.outs + (hr.outs if hr else [])
|
||||||
|
|||||||
Reference in New Issue
Block a user