Adjusted build directory layout to avoid comflict with generated sources
This commit is contained in:
parent
0dac774fb8
commit
d6cff3bcbc
|
@ -151,7 +151,7 @@ def compile(
|
||||||
res: list[str] = []
|
res: list[str] = []
|
||||||
for src in srcs:
|
for src in srcs:
|
||||||
rel = Path(src).relative_to(scope.component.dirname())
|
rel = Path(src).relative_to(scope.component.dirname())
|
||||||
dest = buildpath(scope, path="obj") / rel.with_suffix(".o")
|
dest = buildpath(scope, path="__obj__") / rel.with_suffix(".o")
|
||||||
t = scope.target.tools[rule]
|
t = scope.target.tools[rule]
|
||||||
w.build(str(dest), rule, inputs=src, order_only=t.files)
|
w.build(str(dest), rule, inputs=src, order_only=t.files)
|
||||||
res.append(str(dest))
|
res.append(str(dest))
|
||||||
|
@ -163,7 +163,6 @@ def compileObjs(w: ninja.Writer, scope: ComponentScope) -> list[str]:
|
||||||
for rule in rules.rules.values():
|
for rule in rules.rules.values():
|
||||||
if rule.id not in ["cp", "ld", "ar"]:
|
if rule.id not in ["cp", "ld", "ar"]:
|
||||||
objs += compile(w, scope, rule.id, wilcard(scope, rule.fileIn))
|
objs += compile(w, scope, rule.id, wilcard(scope, rule.fileIn))
|
||||||
|
|
||||||
return objs
|
return objs
|
||||||
|
|
||||||
|
|
||||||
|
@ -181,7 +180,7 @@ def compileRes(
|
||||||
res: list[str] = []
|
res: list[str] = []
|
||||||
for r in listRes(scope.component):
|
for r in listRes(scope.component):
|
||||||
rel = Path(r).relative_to(scope.component.subpath("res"))
|
rel = Path(r).relative_to(scope.component.subpath("res"))
|
||||||
dest = buildpath(scope, "res") / rel
|
dest = buildpath(scope, "__res__") / rel
|
||||||
w.build(str(dest), "cp", r)
|
w.build(str(dest), "cp", r)
|
||||||
res.append(str(dest))
|
res.append(str(dest))
|
||||||
return res
|
return res
|
||||||
|
@ -192,9 +191,9 @@ def compileRes(
|
||||||
|
|
||||||
def outfile(scope: ComponentScope) -> str:
|
def outfile(scope: ComponentScope) -> str:
|
||||||
if scope.component.type == model.Kind.LIB:
|
if scope.component.type == model.Kind.LIB:
|
||||||
return str(buildpath(scope, f"lib/{scope.component.id}.a"))
|
return str(buildpath(scope, f"__lib__/{scope.component.id}.a"))
|
||||||
else:
|
else:
|
||||||
return str(buildpath(scope, f"bin/{scope.component.id}.out"))
|
return str(buildpath(scope, f"__bin__/{scope.component.id}.out"))
|
||||||
|
|
||||||
|
|
||||||
def collectLibs(
|
def collectLibs(
|
||||||
|
|
|
@ -456,7 +456,7 @@ class Resolver:
|
||||||
|
|
||||||
stack.pop()
|
stack.pop()
|
||||||
result.insert(0, keep)
|
result.insert(0, keep)
|
||||||
self._cache[keep] = Resolved(required=utils.uniq(result))
|
self._cache[keep] = Resolved(required=utils.uniqPreserveOrder(result))
|
||||||
return self._cache[keep]
|
return self._cache[keep]
|
||||||
|
|
||||||
|
|
||||||
|
@ -604,7 +604,9 @@ class Registry(DataClassJsonMixin):
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
victim.resolved[target.id].injected.append(c.id)
|
victim.resolved[target.id].injected.append(c.id)
|
||||||
victim.resolved[target.id].required = utils.uniq(
|
victim.resolved[
|
||||||
|
target.id
|
||||||
|
].required = utils.uniqPreserveOrder(
|
||||||
c.resolved[target.id].required
|
c.resolved[target.id].required
|
||||||
+ victim.resolved[target.id].required
|
+ victim.resolved[target.id].required
|
||||||
)
|
)
|
||||||
|
|
|
@ -6,7 +6,7 @@ import hashlib
|
||||||
T = TypeVar("T")
|
T = TypeVar("T")
|
||||||
|
|
||||||
|
|
||||||
def uniq(lst: list[T]) -> list[T]:
|
def uniqPreserveOrder(lst: list[T]) -> list[T]:
|
||||||
result: list[T] = []
|
result: list[T] = []
|
||||||
for i in lst:
|
for i in lst:
|
||||||
if i in result:
|
if i in result:
|
||||||
|
|
Loading…
Reference in a new issue