diff options
| author | Alejandro Sior <aho@sior.be> | 2022-08-11 09:09:14 +0200 |
|---|---|---|
| committer | Alejandro Sior <aho@sior.be> | 2022-08-11 09:09:14 +0200 |
| commit | 80a0219d4929ffbb584a6153d2aed35af05b3ebd (patch) | |
| tree | 564a8f611712cb2f75889c205f1c6b42aa90643c | |
| parent | e3f26569e012bc961bc355d25c731303856fec04 (diff) | |
cook: simplify argument passing with *args and **kwargs
| -rwxr-xr-x | cook.py | 50 |
1 files changed, 23 insertions, 27 deletions
@@ -93,7 +93,7 @@ class Target(File): self.inputs = File.resolve(inputs) # The extra arguments taken - self.extra_args = extra_args + self.extra_args = flatten(extra_args) def gen_makefile(self): inputs = " ".join([str(x) for x in self.inputs]) @@ -148,8 +148,8 @@ class Processor(metaclass = ProcessorMeta): # The description self.mkdesc = wrap_lambda(mkdesc) - def __call__(self, name, *args, extra_args = []): - return self.gen(name, *args, extra_args = extra_args) + def __call__(self, *args, **kwargs): + return self.gen(*args, **kwargs) def gen(self, name, *args, extra_args = []): inputs = File.resolve(args) @@ -170,27 +170,26 @@ class Processor(metaclass = ProcessorMeta): return out class Vec(Processor): - def __init__(self, name, exe, mkargs, mkout, mkdesc=DEFMKDESC): - super().__init__(name, exe, mkargs, mkout = mkout, mkdesc = mkdesc) + def __init__(self, *args, mkout, **kwargs): + super().__init__(*args, mkout = mkout, **kwargs) - def __call__(self, *args, extra_args = []): - return self.gen(*args, extra_args = extra_args) + def __call__(self, *args, **kwargs): + return self.gen(*args, **kwargs) - def gen(self, *args, extra_args = []): + def gen(self, *args, **kwargs): args = File.resolve(args) - extra_args = flatten(extra_args) targets = [] for i in args: path = BUILD / i.path.parent / self.mkout(i.path) - targets.append(Target(path, self, [i], extra_args)) + targets.append(Target(path, self, [i], **kwargs)) return targets class CTarget(Target): - def __init__(self, path, processor, inputs, header_depends, extra_args = []): - super().__init__(path, processor, inputs, extra_args = extra_args) + def __init__(self, *args, header_depends = [], **kwargs): + super().__init__(*args, **kwargs) self.header_depends = File.resolve(header_depends) def gen_makefile(self): @@ -203,21 +202,19 @@ class CTarget(Target): return "".join(out) class CC(Vec): - def __init__(self, name, exe, mkargs, mkout, mkinc, mkdep=None, depstyle=None, mkdesc=DEFMKDESC): - super().__init__(name, exe, mkargs, mkout, mkdesc=mkdesc) + def __init__(self, *args, mkinc, mkdep=None, depstyle=None, **kwargs): + super().__init__(*args, **kwargs) self.mkinc = mkinc self.mkdep = mkdep self.depstyle = depstyle - def __call__(self, *args, extra_args = [], include_dirs = []): - return self.gen(*args, extra_args = extra_args, include_dirs = include_dirs) + def __call__(self, *args, **kwargs): + return self.gen(*args, **kwargs) - def gen(self, *args, extra_args = [], include_dirs = []): + def gen(self, *args, extra_args = [], include_dirs = [], **kwargs): inputs = File.resolve(args) - extra_args = flatten(extra_args) include_dirs = File.resolve(include_dirs) - include_args = [self.mkinc(str(x)) for x in include_dirs] extra_args += include_args @@ -230,7 +227,7 @@ class CC(Vec): if self.mkdep: header_depends += [BUILD / self.mkdep(out)] - targets.append(CTarget(path, self, input, header_depends = header_depends, extra_args = extra_args)) + targets.append(CTarget(path, self, input, header_depends = header_depends, extra_args = extra_args, **kwargs)) return targets @@ -252,16 +249,15 @@ class CC(Vec): return out class CExe(Processor): - def __init__(self, name, exe, mkargs, mklib, mkout = DEFMKOUT, mkdesc=DEFMKDESC): - super().__init__(name, exe, mkargs, mkout = mkout, mkdesc = mkdesc) + def __init__(self, *args, mklib, **kwargs): + super().__init__(*args, **kwargs) self.mklib = mklib - def __call__(self, name, *args, libs = [], extra_args = []): - return self.gen(name, *args, libs = libs, extra_args = extra_args) + def __call__(self, *args, **kwargs): + return self.gen(*args, **kwargs) - def gen(self, name, *args, libs, extra_args = []): - extra_args = flatten(extra_args) + def gen(self, name, *args, libs=[], extra_args = [], **kwargs): libs = flatten(libs) # Note: this is bad, perhaps take a "depends" also/instead @@ -269,7 +265,7 @@ class CExe(Processor): libs_args = [self.mklib(lib) for lib in libs] extra_args += libs_args - return super().gen(name, *args, extra_args = extra_args) + return super().gen(name, *args, extra_args = extra_args, **kwargs) def CCStyleToolchain(name, gccname, arname, suffix="", c_args=[], ld_args=[]): ccname = name + suffix |
