summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlejandro Sior <aho@sior.be>2022-08-06 11:03:13 +0200
committerAlejandro Sior <aho@sior.be>2022-08-06 11:03:13 +0200
commit09d7a6f5793971df4e731c601bd2550bf0a80b3d (patch)
tree9805f7696f89890e4f0ecd5008cbd2131332705f
parent83e7d98e5ac459d5d40b142dbd66ce63ef1aa983 (diff)
cook: rename a few arguments
-rwxr-xr-xcook.py37
-rw-r--r--test/.build2
2 files changed, 21 insertions, 18 deletions
diff --git a/cook.py b/cook.py
index 58da1d9..aa8fdd2 100755
--- a/cook.py
+++ b/cook.py
@@ -20,7 +20,8 @@ def flatten(el):
ROOT = Path.cwd()
BUILD = Path("bld").resolve().relative_to(ROOT)
-DEFDESC = lambda o, i, cmd: "%s" % (cmd)
+DEFMKDESC = lambda o, i, cmd: "%s" % (cmd)
+DEFMKOUT = lambda i: "%s" % (i)
#self, name, exe, mkargs, mkout, mkinc, desc=DEFDESC
@@ -33,7 +34,7 @@ C_COMPILERS = {
mkinc=lambda i: "-I" + i,
mkdep=lambda o: "%s.d" % (o),
depstyle="gcc",
- desc=lambda o, i, cmd: "CC %s" % (o),
+ mkdesc=lambda o, i, cmd: "CC %s" % (o),
),
'clang': lambda: CC(
"clang",
@@ -44,7 +45,7 @@ C_COMPILERS = {
mkinc=lambda i: "-I" + i,
mkdep=lambda o: "%s.d" % (o),
depstyle="gcc",
- desc=lambda o, i, cmd: "CC %s" % (o),
+ mkdesc=lambda o, i, cmd: "CC %s" % (o),
)
}
@@ -54,14 +55,14 @@ C_LINKERS = {
find_program("gcc"),
mkargs=lambda o, i, ea: "-o %s %s %s" % (o, i, ea),
mklib=lambda l: "-l" + l,
- desc=lambda o, i, cmd: "LD %s" % (o)
+ mkdesc=lambda o, i, cmd: "LD %s" % (o)
),
'clang': lambda: CExe(
"ld-clang",
find_program("clang"),
mkargs=lambda o, i, ea: "-o %s %s %s" % (o, i, ea),
mklib=lambda l: "-l" + l,
- desc=lambda o, i, cmd: "LD %s" % (o)
+ mkdesc=lambda o, i, cmd: "LD %s" % (o)
)
}
@@ -134,7 +135,7 @@ class Target(File):
out = "%s: %s\n" % (self.path, inputs)
out += "\t@$(%s) %s\n" % (self.processor.name, self.processor.mkargs("$@", inputs, extra_args))
- out += "\t@echo '%s'" % (self.processor.desc("$@", inputs, extra_args))
+ out += "\t@echo '%s'" % (self.processor.mkdesc("$@", inputs, extra_args))
return out
@@ -165,7 +166,7 @@ class ProcessorMeta(type):
class Processor(metaclass = ProcessorMeta):
mdb = dict()
- def __init__(self, name, exe, mkargs, desc=DEFDESC):
+ def __init__(self, name, exe, mkargs, mkout=DEFMKOUT, mkdesc=DEFMKDESC):
# The name of the processor
self.name = name
@@ -175,15 +176,18 @@ class Processor(metaclass = ProcessorMeta):
# The arguments that is used to launch the process
self.mkargs = wrap_lambda(mkargs)
+ # The way to generate output path
+ self.mkout = wrap_lambda(mkout)
+
# The description
- self.desc = wrap_lambda(desc)
+ self.mkdesc = wrap_lambda(mkdesc)
def __call__(self, name, *args, extra_args = []):
return self.gen(name, *args, extra_args = extra_args)
def gen(self, name, *args, extra_args = []):
inputs = File.resolve(args)
- path = BUILD / Path.cwd().relative_to(ROOT) / name
+ path = BUILD / Path(".").resolve().relative_to(ROOT) / self.mkout(name)
return Target(path, self, inputs, extra_args)
@@ -196,13 +200,12 @@ class Processor(metaclass = ProcessorMeta):
cmd = "%s %s" % (self.exe, self.mkargs("$out", "$in", "$extra"))
out += " command = %s\n" % (cmd)
- out += " description = %s\n" % (self.desc("$out", "$in", cmd))
+ out += " description = %s\n" % (self.mkdesc("$out", "$in", cmd))
return out
class Vec(Processor):
- def __init__(self, name, exe, mkargs, mkout, desc=DEFDESC):
- super().__init__(name, exe, mkargs, desc=desc)
- self.mkout = wrap_lambda(mkout)
+ def __init__(self, name, exe, mkargs, mkout, mkdesc=DEFMKDESC):
+ super().__init__(name, exe, mkargs, mkout = mkout, mkdesc = mkdesc)
def __call__(self, *args, extra_args = []):
return self.gen(*args, extra_args = extra_args)
@@ -234,8 +237,8 @@ class CTarget(Target):
return "".join(out)
class CC(Vec):
- def __init__(self, name, exe, mkargs, mkout, mkinc, mkdep=None, depstyle=None, desc=DEFDESC):
- super().__init__(name, exe, mkargs, mkout, desc=desc)
+ def __init__(self, name, exe, mkargs, mkout, mkinc, mkdep=None, depstyle=None, mkdesc=DEFMKDESC):
+ super().__init__(name, exe, mkargs, mkout, mkdesc=mkdesc)
self.mkinc = mkinc
self.mkdep = mkdep
self.depstyle = depstyle
@@ -274,8 +277,8 @@ class CC(Vec):
return out
class CExe(Processor):
- def __init__(self, name, exe, mkargs, mklib, desc=DEFDESC):
- super().__init__(name, exe, mkargs, desc = desc)
+ def __init__(self, name, exe, mkargs, mklib, mkdesc=DEFMKDESC):
+ super().__init__(name, exe, mkargs, mkdesc = mkdesc)
self.mklib = mklib
diff --git a/test/.build b/test/.build
index 2f4b0c1..141c003 100644
--- a/test/.build
+++ b/test/.build
@@ -1,2 +1,2 @@
obj = cc("main.c")
-aout = ld("a.out", obj, libs=["Xm", "Xt"]) \ No newline at end of file
+aout = ld("vol", obj, libs=["Xm", "Xt"]) \ No newline at end of file