diff options
| author | Alejandro Sior <aho@sior.be> | 2022-08-06 21:34:44 +0200 |
|---|---|---|
| committer | Alejandro Sior <aho@sior.be> | 2022-08-06 21:34:44 +0200 |
| commit | d98a704dabccec1b4eb11eb35ddc1a57acb57811 (patch) | |
| tree | f3dcffc3199d7ebed4ca0873b1d8151e0d8c1618 | |
| parent | a448a31cab64ab684a79bb179de7a859f8f9da1a (diff) | |
cook: restrict the mkextra hack to CExe
| -rwxr-xr-x | cook.py | 40 |
1 files changed, 14 insertions, 26 deletions
@@ -127,7 +127,7 @@ class ProcessorMeta(type): class Processor(metaclass = ProcessorMeta): mdb = dict() - def __init__(self, name, exe, mkargs, mkextra=[], mkout=DEFMKOUT, mkdesc=DEFMKDESC): + def __init__(self, name, exe, mkargs, mkout=DEFMKOUT, mkdesc=DEFMKDESC): # The name of the processor self.name = name @@ -137,10 +137,6 @@ class Processor(metaclass = ProcessorMeta): # The arguments that is used to launch the process self.mkargs = wrap_lambda(mkargs) - # A list of functions indicating how to build extra arguments - # XXX: TODO: mkextra is a horrible hack - self.mkextra = mkextra - # The way to generate output path self.mkout = wrap_lambda(mkout) @@ -154,11 +150,6 @@ class Processor(metaclass = ProcessorMeta): inputs = File.resolve(args) path = BUILD / Path(".").resolve().relative_to(ROOT) / self.mkout(name) - # XXX: consider passing the arrays of files to handlers directly - i = " ".join([str(inp) for inp in inputs]) - for mk in self.mkextra: - extra_args += [mk(name)] - return Target(path, self, inputs, extra_args) def gen_makefile(self): @@ -174,8 +165,8 @@ class Processor(metaclass = ProcessorMeta): return out class Vec(Processor): - def __init__(self, name, exe, mkargs, mkout, mkextra=[], mkdesc=DEFMKDESC): - super().__init__(name, exe, mkargs, mkextra = mkextra, mkout = mkout, mkdesc = mkdesc) + 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) @@ -187,11 +178,6 @@ class Vec(Processor): targets = [] for i in args: path = BUILD / i.path.parent / self.mkout(i.path) - extra_p = extra_args - - # XXX: consider passing the i File directly to mk - for mk in self.mkextra: - extra_p += [mk(path)] targets.append(Target(path, self, [i], extra_args)) @@ -212,8 +198,8 @@ class CTarget(Target): return "".join(out) class CC(Vec): - def __init__(self, name, exe, mkargs, mkout, mkinc, mkextra=[], mkdep=None, depstyle=None, mkdesc=DEFMKDESC): - super().__init__(name, exe, mkargs, mkout, mkextra=mkextra, mkdesc=mkdesc) + 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 @@ -239,12 +225,7 @@ class CC(Vec): if self.mkdep: hdep += BUILD / self.mkdep(out) - extra_p = extra_args - # XXX: consider passing the i File directly to mk - for mk in self.mkextra: - extra_p += [mk(path)] - - targets.append(CTarget(path, self, input, header_depends = header_depends, extra_args = extra_p)) + targets.append(CTarget(path, self, input, header_depends = header_depends, extra_args = extra_args)) return targets @@ -267,10 +248,14 @@ class CC(Vec): class CExe(Processor): def __init__(self, name, exe, mkargs, mklib, mkextra = [], mkout = DEFMKOUT, mkdesc=DEFMKDESC): - super().__init__(name, exe, mkargs, mkextra = mkextra, mkout = mkout, mkdesc = mkdesc) + super().__init__(name, exe, mkargs, mkout = mkout, mkdesc = mkdesc) self.mklib = mklib + # A list of functions indicating how to build extra arguments + # XXX: TODO: mkextra is a horrible hack + self.mkextra = mkextra + def __call__(self, name, *args, libs = [], extra_args = []): return self.gen(name, *args, libs = libs, extra_args = extra_args) @@ -283,6 +268,9 @@ class CExe(Processor): libs_args = [self.mklib(lib) for lib in libs] extra_args += libs_args + for mk in self.mkextra: + extra_args += [mk(name)] + return super().gen(name, *args, extra_args = extra_args) def CCStyleToolchain(name, gccname, arname, suffix="", c_args=[], ld_args=[]): |
